Linux 用户与组管理全解析
Linux 用户与组管理
一、用户和组的基本概念
1. 用户账号类型
- 超级用户(root):默认拥有系统最高权限(UID=0),仅建议用于系统管理与维护,日常操作应使用普通用户。
- 普通用户:由管理员创建,权限受限,通常仅在自身家目录拥有完整权限。
- 程序用户(服务用户):为系统服务(如
nginx
、mysql
)创建的专用账号,一般不允许登录系统。
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
等文件记录核心信息,借助useradd
、groupadd
等命令进行创建、修改和删除操作。合理配置用户权限与密码策略,结合sudo
进行权限委派,可保障系统安全性与可管理性。