CentOS 7 中用户、密码、组信息及相关配置的完整解析,涵盖配置文件、属性管理、密码策略及 useradd 命令的用法和示例:
用户与组信息存储位置
- 用户基本信息
- 文件路径:cat /etc/passwd如图1所示
- 字段格式(冒号分隔)
用户名:密码占位符(x):UID:GID:描述信息:家目录:登录ShellUID 规则:
0:root 用户
1-999:系统用户
1000-60000:普通用户(默认从 1000 开始)
- 用户密码与安全属性
- 文件路径:/etc/shadow如图2所示
- 字段格式(9 个字段)
用户名:加密密码:最后修改密码天数:最小修改间隔:密码有效期:过期前警告天数:宽限期:账号失效日:保留加密算法标识(密码字段开头)
$6$:SHA-512(CentOS 7 默认)
!! 或 *:账户被锁定/无密码
- 组信息
- 文件路径:/etc/group如图3所示
- 字段格式:
组名:组密码占位符(x):GID:组成员列表(逗号分隔)附加组:用户可属于多个附加组(主组仅一个)
- 组密码与管理
- 文件路径:/etc/gshadow如图4所示
- 字段格式:
组名:加密密码:组管理员:组成员!:无有效密码
用户属性与密码策略配置
- 密码策略文件
- 文件路径:/etc/login.defs
- 关键参数
PASS_MAX_DAYS 99999 # 密码最长有效期(默认永不过期)
PASS_MIN_DAYS 0 # 修改密码的最小间隔天数(0 表示随时可改)
PASS_MIN_LEN 8 # 密码最小长度
PASS_WARN_AGE 7 # 密码过期前警告天数
UID_MIN 1000 # 普通用户 UID 起始值
GID_MIN 1000 # 普通组 GID 起始值
CREATE_HOME yes # 是否自动创建家目录- 默认用户配置模板
- 文件路径:/etc/default/useradd
- 默认值示例如图5所示
useradd 命令用法与示例
- 常用选项
选项 | 作用 |
-m | 创建家目录(默认不创建) |
-d | 指定家目录路径(如 /data/user1) |
-s | 指定登录 Shell(如 /sbin/nologin) |
-g | 指定主组(组名或 GID) |
-G | 指定附加组(逗号分隔) |
-u | 自定义 UID |
-e | 设置账号过期日期(格式 YYYY-MM-DD) |
-c | 添加用户描述(如 "Admin User") |
-r | 创建系统用户(UID<1000) |
- 实用示例
- 创建普通用户(自动生成 UID/GID):如图6所示
useradd -m -s /bin/bash user- 创建用户并指定属性:如图7所示
useradd -u 11501 -g developers -G webadmins,db -d /opt/user2 -c "Dev User" user2- 创建系统用户(禁止登录):如图8所示
useradd -r -s /sbin/nologin appuser- 设置密码:如图9所示
echo "password123" | passwd --stdin user1 # root 可操作
passwd user1 # 交互式设置密码过期与账户锁定管理
- chage 命令
- 查看/修改密码策略:如图10所示
chage -l user1 # 查看策略
chage -M 90 -W 7 user1 # 设置有效期90天,提前7天警告- 账户锁定与解锁如图11所示
passwd -l user1 # 锁定账户(/etc/shadow 密码前加 !!)
passwd -u user1 # 解锁组管理命令
- 添加组:groupadd -g 2000 devgroup如图12所示
- 修改组名:groupmod -n newgroup oldgroup如图13所示
- 删除组(需先移除成员):groupdel devgroup如图14所示
- 管理组成员:如图15所示
gpasswd -a user1 devgroup # 添加成员
gpasswd -d user1 devgroup # 移除成员安全增强建议
- 强密码策略
编辑 /etc/pam.d/system-auth,添加:
password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1- 禁用 root SSH 登录
修改 /etc/ssh/sshd_config:
PermitRootLogin no- 定期审计账户如图16所示
awk -F: '($3 >=1000) {print $1}' /etc/passwd # 列出普通用户
grep '!!' /etc/shadow # 检查未激活账户附:配置文件字段速查表
文件 | 关键字段 |
/etc/passwd | 用户名:密码占位符(x):UID:GID:描述:家目录:Shell |
/etc/shadow | 用户名:加密密码:最后修改天数:最小间隔:最大有效期:警告天数:宽限期:失效日:保留 |
/etc/group | 组名:组密码占位符(x):GID:组成员列表 |
/etc/gshadow | 组名:加密密码:组管理员:组成员 |
通过上述配置和命令,可高效管理 CentOS 7 用户、组及密码策略,提升系统安全性。
