当前位置: 首页 > news >正文

Linux 用户与组管理全解析

Linux 用户与组管理

在这里插入图片描述

一、用户和组的基本概念

1. 用户账号类型

  • 超级用户(root):默认拥有系统最高权限(UID=0),仅建议用于系统管理与维护,日常操作应使用普通用户。
  • 普通用户:由管理员创建,权限受限,通常仅在自身家目录拥有完整权限。
  • 程序用户(服务用户):为系统服务(如nginxmysql)创建的专用账号,一般不允许登录系统。

2. 组账号类型

  • 基本组:用户创建时默认所属的组,每个用户至少属于一个基本组。
  • 附加组:用户额外加入的组,用于获取该组的权限集合。

3. UID 与 GID

  • UID(用户 ID)

    :系统识别用户的唯一标识,范围:

    • 0:超级用户(root)
    • 1~999:系统预留(程序用户)
    • 1000~60000:普通用户
  • GID(组 ID):系统识别组的唯一标识,范围与 UID 对应,root 组 GID=0。

二、用户和组的核心配置文件

1. /etc/passwd(用户基本信息)

  • 作用:存储用户名称、UID、GID、家目录、登录 Shell 等信息,所有用户可读取,仅 root 可修改。
  • 格式:7 个字段用冒号分隔
    用户名:密码占位符(x):UID:GID:描述信息:家目录:登录Shell
    例:zhangsan:x:1001:1001:张三:/home/zhangsan:/bin/bash

2. /etc/shadow(用户密码信息)

  • 作用:存储用户密码(加密形式)及密码策略,仅 root 可读取。

  • 格式

    :9 个字段用冒号分隔

    用户名:加密密码:最近改密天数:密码不可改天数:密码有效期:警告天数:宽限天数:账号失效日期:保留
    
    • 加密密码:*!!表示账号锁定,空值表示无需密码登录。
    • 日期计算:以 1970 年 1 月 1 日为起始点(如1900表示 1970 年 1 月 1 日后第 1900 天)。

3. /etc/group(组基本信息)

  • 作用:存储组名称、GID、组成员等信息。
  • 格式:4 个字段用冒号分隔
    组名:组密码占位符:GID:组成员列表
    例:dev:x:1002:zhangsan,lisi

4. /etc/gshadow(组密码信息)

  • 作用:存储组密码及管理员信息,仅 root 可读取。

  • 格式

    :4 个字段用冒号分隔

    组名:组加密密码:组管理员:组成员
    
    • 组密码为空或!表示无密码,组管理员可管理组成员。

三、用户和组管理命令

1. 用户管理

(1)创建用户(useradd
# 创建普通用户,指定UID、家目录、基本组、附加组、登录Shell
useradd -u 1005 -d /home/wangwu -g dev -G admin -s /bin/bash wangwu
  • 选项说明:
    • -u:指定 UID
    • -d:指定家目录
    • -g:指定基本组(必须已存在)
    • -G:指定附加组(多个组用逗号分隔)
    • -s:指定登录 Shell(/sbin/nologin表示禁止登录)
(2)设置密码(passwd
# 为用户设置密码
passwd wangwu# 锁定/解锁用户
passwd -l wangwu  # 锁定
passwd -u wangwu  # 解锁# 清空用户密码(允许无密码登录)
passwd -d wangwu
(3)修改用户属性(usermod
# 修改用户家目录,移动原内容到新目录
usermod -d /home/new_wangwu -m wangwu# 更改用户基本组为admin,附加组为dev、test
usermod -g admin -G dev,test wangwu# 锁定/解锁用户
usermod -L wangwu  # 锁定
usermod -U wangwu  # 解锁
(4)删除用户(userdel
# 删除用户(保留家目录)
userdel wangwu# 彻底删除用户(含家目录和邮件文件)
userdel -r wangwu

2. 组管理

(1)创建组(groupadd
# 创建组,指定GID
groupadd -g 1006 testgroup
(2)删除组(groupdel
# 删除组(组必须无成员,否则需先移除成员)
groupdel testgroup
(3)管理组成员(gpasswd
# 添加用户到组(附加组)
gpasswd -a zhangsan testgroup# 从组中移除用户
gpasswd -d zhangsan testgroup# 设置组管理员(允许管理员管理组成员)
gpasswd -A lisi testgroup
(4)查看用户所属组(groups
# 查看指定用户所属组
groups zhangsan  # 输出:zhangsan : dev admin

3. 密码策略管理(chage

# 查看用户密码策略
chage -l wangwu# 设置密码有效期为90天,提前7天警告,过期后3天锁定
chage -M 90 -W 7 -I 3 wangwu# 设置账号2024-12-31过期
chage -E 2024-12-31 wangwu

四、权限委派(sudo

允许普通用户临时以 root 权限执行指定命令,配置文件为/etc/sudoers(需用visudo编辑)。

配置示例:

visudo  # 安全编辑sudoers文件# 添加以下内容:允许admin组用户执行useradd、usermod、userdel命令
Cmnd_Alias USERMGMT = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
%admin  ALL=(ALL)  USERMGMT

使用方法:

# 普通用户执行授权命令
sudo useradd tom  # 输入自身密码验证后执行

总结

用户与组管理通过/etc/passwd/etc/shadow等文件记录核心信息,借助useraddgroupadd等命令进行创建、修改和删除操作。合理配置用户权限与密码策略,结合sudo进行权限委派,可保障系统安全性与可管理性。

http://www.lryc.cn/news/609536.html

相关文章:

  • 电商系统想撑住大流量?ZKmall开源商城靠微服务 + Spring Boot3 解决单体架构难题
  • JavaScript中的作用域、闭包、定时器 由浅入深
  • 肾上腺疾病AI诊疗一体化系统应用方向探析
  • 机器学习——学习路线
  • 【拓扑序 容斥原理】P6651 「SWTR-5」Chain|省选-
  • 登录验证码功能实现:Spring Boot + Vue 全流程解析
  • Ethereum:智能合约开发者的“瑞士军刀”OpenZeppelin
  • Neo4j 社区版 Mac 安装教程
  • 数据结构---配置网络步骤、单向链表额外应用
  • Vue3核心语法进阶(Hook)
  • 如何使用EF框架操作Sqlite
  • 20250805问答课题-实现TextRank + 问题分类
  • 量子计算接口开发:Python vs Rust 性能对决
  • uniapp快遞上門提貨的時間選擇的插件
  • PyTorch生成式人工智能(25)——基于Transformer实现机器翻译
  • 代码详细注释:(linux)TCP客户端接收服务器端发的信息
  • AI 大模型分类全解析:从文本到多模态的技术图谱
  • Rust ⽣成 .wasm 的极致瘦⾝之道
  • 从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别
  • 【Spark征服之路-4.5-Spark-Streaming核心编程(三)】
  • [Oracle] TO_CHAR()函数
  • 安装MySQL教程时可能遇到的问题
  • 【Linux】重生之从零开始学习运维之GTID复制
  • XXE漏洞原理及利用
  • NSS-DAY17 2025SWPU-NSSCTF
  • Chrontel 【CH7103B-B】CH7103B HDMI to YPbPr Converter
  • 行业报告:.games域名正引领游戏娱乐产业营销新风向
  • 力扣 hot100 Day65
  • 嵌入式学习之51单片机——串口(UART)
  • 回归预测 | MATLAB实现BP神经网络多输入单输出回归预测+SHAP可解释分析