Linux用户管理命令
一、用户全生命周期管理
1. useradd - 用户创建
- 基础语法:
useradd [选项] 用户名
- 核心参数:
-d
指定家目录 |-g
主用户组 |-G
附加组 |-s
登录Shell |-u
自定义UID - 实战案例:
# 创建禁止登录的系统账户(常用于服务部署) useradd -r -s /sbin/nologin mysql # 创建开发用户并加入docker组 useradd -m -G docker -s /bin/bash dev01
- 配置文件:
用户信息存储在/etc/passwd
,密码加密后存于/etc/shadow
(字段详解见文末)15
2. passwd - 密码管理
- 密码策略:
passwd dev01 # root修改其他用户密码 passwd # 普通用户修改自身密码 chage -l dev01 # 查看密码过期策略
- 安全技巧:
禁用弱密码:修改/etc/pam.d/passwd
启用密码复杂度检查模块6
3. usermod - 用户属性修改
- 高频操作:
usermod -aG sudo dev01 # 添加sudo权限(需配合visudo) usermod -L dev01 # 锁定账户(禁止登录) usermod -e 2025-12-31 dev01 # 设置账户过期时间
- 注意事项:
修改用户名:usermod -l newname oldname
(需确保用户未登录)4
4. userdel - 用户删除
- 危险操作:
userdel -r dev01 # 删除用户及家目录
- 残留处理:
使用find / -user 1001 -ls
查找并清理残留文件(1001为被删用户UID)3
5. su/sudo - 权限切换
- 权限控制:
su - dev01 # 完整环境切换(加载.profile) sudo vim /etc/hosts # 临时提权执行命令
- sudo配置:
在/etc/sudoers
中添加:dev01 ALL=(ALL:ALL) NOPASSWD:/usr/bin/apt # 允许无密码执行apt %dev_group ALL=/sbin/service nginx * # 组权限授予 ```[4](@ref)[9](@ref)
二、用户组精细化管理
1. groupadd/groupmod - 组操作
- 组管理三剑客:
groupadd -g 2000 dev_team # 创建指定GID的组 groupmod -n team_alpha dev_team # 重命名组 groupdel team_alpha # 删除空组
- 关联文件:
组信息存储在/etc/group
,组密码存于/etc/gshadow
6
2. 用户组权限分配
- 典型场景:
usermod -aG docker,www-data dev01 # 用户加入多个附加组 newgrp docker # 切换当前会话的主组
- 权限验证:
使用id dev01
查看用户所有关联组2
三、核心配置文件解析
1. /etc/passwd
dev01:x:1001:1001::/home/dev01:/bin/bash
2. /etc/shadow
dev01:$6$...:19485:0:99999:7:::
- 密码策略字段:
加密密码 | 最后修改日 | 最小天数 | 最大天数 | 警告天数 | 禁用期5
3. /etc/group
docker:x:998:dev01,test_user
- 结构说明:
组名:密码占位符:GID:附加用户列表6
四、企业级管理实践
1. 批量用户管理
# 使用newusers批量创建
echo "user02:x:1002:1002::/home/user02:/bin/bash" >> users.txt
newusers users.txt
# 使用chpasswd批量改密
echo "user02:NewPass123" | chpasswd
2. LDAP集成建议
- 大型企业建议使用OpenLDAP统一管理用户,通过
authconfig
工具配置SSSD3
五、安全审计与监控
1. 登录日志分析
lastlog # 查看所有用户最后登录时间
grep "Failed password" /var/log/auth.log # 定位暴力破解
2. 敏感操作审计
# 启用sudo命令审计
echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers