10.Linux 用户和组的管理
Linux : 用户和组的管理
一、用户类型
- 超级用户
- root用户(UID=0),拥有系统最高权限
- 安全建议:日常操作使用普通用户,仅在系统管理时切root
- 普通用户
- 由管理员创建(UID≥1000),权限受限
- 家目录(
/home/用户名
)拥有完整权限
- 程序用户
- 系统服务专用(UID范围1-999),无登录权限
- 示例:
www-data
(Web服务)、mysql
(数据库)
二、组管理
- 基本组:用户创建文件时默认所属组
- 附加组:为用户额外授权的组(如赋予
sudo
权限) - 组ID(GID):
- root组 GID=0
- 系统组 GID=1-999
- 普通组 GID≥1000
三、核心配置文件
文件路径 | 作用 | 关键字段说明 |
---|---|---|
/etc/passwd | 用户基本信息 | 用户名:x:UID:GID:描述:家目录:登录Shell |
/etc/shadow | 用户密码及策略(仅root可读) | 账号:加密密码:最后修改日:最小天数:最大天数:警告期:宽限日:失效日:保留 |
/etc/group | 组信息 | 组名:x:GID:组成员列表 |
/etc/gshadow | 组密码及管理信息 | 组名:加密密码:组管理员:组成员 |
重要安全机制:密码从
passwd
移至shadow
,避免暴力破解(passwd
中用x
占位)
四、密码(chage命令)
# 设置用户密码策略
sudo chage -m 7 -M 90 -W 7 -E 2025-12-31 username# 常用选项:
# -m:密码最小修改间隔(天)
# -M:密码有效期(天)
# -W:密码过期前警告天数
# -E:账号绝对失效日期(YYYY-MM-DD)
# -I:密码过期后禁用账号前的宽限天数
五、用户管理命令
1. 创建用户
sudo useradd -m -d /home/misa -s /bin/bash -g dev -G sudo,sales misa
-m
:创建家目录-g
:指定基本组-G
:指定附加组(逗号分隔)
2. 修改用户属性
sudo usermod -L misa # 锁定账号
sudo usermod -U misa # 解锁账号
sudo usermod -aG newgroup misa # 添加附加组(保留原组)
3. 删除用户
sudo userdel -r misa # 删除用户及家目录、邮件
4. 密码管理
sudo passwd misa # 设置密码
sudo passwd -d misa # 清空密码(无密码登录)
sudo passwd -S misa # 查看密码状态
六、组管理命令
sudo groupadd # 创建组
sudo groupdel # 删除组(需先移除组成员)
sudo gpasswd -a misa # 添加用户到组
sudo gpasswd -d misa # 从组移除用户
groups misa # 查看用户所属组
七、权限委派(sudo)
配置文件:/etc/sudoers
# 步骤:
1. 定义命令别名(安全建议):Cmnd_Alias kami = /usr/sbin/useradd, /usr/sbin/userdel2. 授权用户(组):misa ALL=(ALL) kami # kami可执行指定命令# 验证:
sudo -l -U misa # 查看misa的sudo权限
- 优先授权命令而非ALL权限
- 生产环境慎用
NOPASSWD
关键补充与建议
-
UID/GID范围
- 系统用户/组:0-999
- 普通用户/组:1000-60000(系统默认上限可调整)
-
密码安全
- Shadow加密:SHA-512(现代系统)
- 禁用登录:密码字段设为
*
或!!
(/etc/shadow
)
-
用户默认配置
- 模板文件:
/etc/skel/
(新建用户时自动复制到家目录) - 默认设置:
/etc/default/useradd
- 模板文件:
-
查看用户信息工具
id misa # 查看UID/GID及所属组 lastlog # 所有用户最近登录记录
-
特殊Shell
/sbin/nologin
:禁止登录(程序用户专用)