05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作
目录
前言
1 Linux用户管理基础概念
1.1 Linux用户类型
1.2 用户相关配置文件
1.3 UID与GID
2 用户创建与管理
2.1 创建用户
2.2 设置用户密码
3 用户权限管理
3.1 授予sudo权限
3.2 以其他用户身份执行命令
4 用户信息查询
4.1 查看用户基本信息
4.2 查看用户所属组
4.3 查看密码状态
4.4 查看密码有效期
5 用户账户策略管理
5.1 设置账户过期时间
5.2 强制用户下次登录修改密码
5.3 锁定与解锁用户
6 用户切换与环境
6.1 切换用户
6.2 用户环境变量
7 用户删除
7.1 删除用户及主目录
8 高级用户管理技巧
8.1 批量创建用户
8.2 修改用户属性
8.3 密码策略实施
9 安全最佳实践
10 常见问题解答
11 结语
前言
Linux作为多用户操作系统,其用户管理功能是系统管理员必须掌握的核心技能之一。本文将全面介绍Linux用户管理的各个方面,包括用户创建、密码设置、权限管理、用户组配置等实用操作深入理解Linux用户管理机制。
1 Linux用户管理基础概念
1.1 Linux用户类型
Linux系统中有三种主要用户类型:
- 超级用户(root):拥有系统最高权限,UID为0
- 系统用户:用于运行系统服务,UID范围通常为1-999
- 普通用户:由管理员创建的一般用户,UID通常从1000开始
1.2 用户相关配置文件
Linux用户信息主要存储在以下几个文件中:
- /etc/passwd:存储用户基本信息
- /etc/shadow:存储用户密码及密码策略
- /etc/group:存储用户组信息
- /etc/gshadow:存储用户组密码
1.3 UID与GID
- UID(User ID):每个用户唯一的数字标识
- GID(Group ID):用户主要组的数字标识
2 用户创建与管理
2.1 创建用户
- 最基本的用户创建命令:
useradd lianggj
这条命令会在系统中创建一个名为"lianggj"的用户,但不会创建主目录或设置密码。
- 更完整的用户创建方式:
useradd -m -s /bin/bash new_lianggj
参数说明:
- -m:创建用户主目录
- -s:指定用户默认shell
- 用户创建流程图:

流程说明:
- 系统首先检查用户名是否已存在
- 为新用户分配唯一的UID和GID
- 将用户信息写入/etc/passwd文件
- 在/etc/shadow中创建密码条目
- 创建用户主目录并设置适当权限
- 从/etc/skel目录复制初始配置文件
2.2 设置用户密码
- 创建用户后,需要为其设置密码:
echo "123456" | passwd --stdin lianggj
这条命令通过管道将密码"123456"传递给passwd命令,为lianggj用户设置密码。
安全建议:
- 避免使用简单密码
- 考虑使用pwgen或openssl rand生成随机密码
- 定期更换密码
3 用户权限管理
3.1 授予sudo权限
- 在Linux中,可以通过将用户添加到wheel组来授予sudo权限:
usermod -aG wheel lianggj
参数说明:
- -a:追加到现有组而不移除其他组
- -G:指定附加组
前提条件:确保wheel组在sudoers文件中有权限,通常位于/etc/sudoers中:%wheel ALL=(ALL) ALL
3.2 以其他用户身份执行命令
sudo -u lianggj command
4 用户信息查询
4.1 查看用户基本信息
id lianggj
- 输出示例:
uid=1001(lianggj) gid=1001(lianggj) groups=10(wheel)
4.2 查看用户所属组
groups lianggj
4.3 查看密码状态
passwd -S lianggj
- 输出示例:
lianggj PS 2024-12-13 7 99999 7 -1 (Password set, MD5 crypt.)
4.4 查看密码有效期
chage -l lianggj
- 输出示例:
Last password change : Dec 13, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
5 用户账户策略管理
5.1 设置账户过期时间
# 设置lianggj账户将在2025年12月31日过期
chage -E 2025-12-31 lianggj
5.2 强制用户下次登录修改密码
chage -d 0 lianggj
5.3 锁定与解锁用户
- 锁定用户:
passwd -l lianggj
- 解锁用户:
passwd -u lianggj
- 账户状态管理流程

流程说明:
- 管理员选择要执行的操作类型
- 根据操作类型执行相应命令
- 系统修改/etc/shadow文件中相应字段
- 更改立即生效
6 用户切换与环境
6.1 切换用户
su - lianggj
参数说明:
- -或-l:模拟登录,加载用户环境变量
6.2 用户环境变量
用户环境变量通常定义在以下文件中:
- ~/.bash_profile
- ~/.bashrc
- ~/.profile
7 用户删除
7.1 删除用户及主目录
userdel -r lianggj
参数说明:
- -r:删除用户主目录和邮件池
- 用户删除流程

流程说明:
- 系统检查用户是否存在
- 终止该用户的所有进程
- 从/etc/passwd中删除用户条目
- 从/etc/shadow中删除密码条目
- 从/etc/group中移除相关组信息
- 删除用户主目录和邮件目录
8 高级用户管理技巧
8.1 批量创建用户
- 可以使用脚本或newusers命令批量创建用户:
newusers users.txt
- 其中users.txt文件格式为:
username:password:UID:GID:comment:homedir:shell
8.2 修改用户属性
usermod -c "lianggj User" -d /home/new_lianggj -s /bin/bash lianggj
参数说明:
- -c:设置用户注释
- -d:修改主目录路径
- -s:修改默认shell
8.3 密码策略实施
- 可以通过编辑/etc/login.defs设置全局密码策略:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
9 安全最佳实践
- 最小权限原则:只授予用户必要的权限
- 定期审计:检查用户权限和活动
- 密码策略:强制使用复杂密码并定期更换
- 账户过期:为临时账户设置过期时间
- 禁用root SSH登录:通过编辑/etc/ssh/sshd_config:
PermitRootLogin no
10 常见问题解答
Q1: 用户被锁定后如何解锁?A: 使用passwd -u username或手动编辑/etc/shadow文件移除密码前的"!"
Q2: 如何查看系统所有用户?A: 使用getent passwd或查看/etc/passwd文件
Q3: 为什么用户无法使用sudo?A: 检查用户是否在sudoers文件或wheel组中,并确认wheel组有sudo权限
Q4: 如何限制用户资源使用?A: 使用ulimit或配置/etc/security/limits.conf文件
11 结语
Linux用户管理是系统管理员日常工作的重要组成部分。了解用户管理命令和技巧,能够有效地管理系统用户、设置适当的权限并维护系统安全。记住,良好的用户管理实践是系统安全的第一道防线。