Linux 用户和用户组管理的常用命令及示例,涵盖创建、删除、权限配置、密码管理等核心操作:
1. 用户管理
创建用户
# 基础创建(自动生成家目录,使用默认 shell)
sudo useradd username
# 指定家目录路径和用户注释信息
sudo useradd -m -d /home/custom_user -c "Test User" custom_user
# 指定 UID、GID 和默认 Shell(e.g., 禁止登录的 shell)
sudo useradd -u 1500 -g 1000 -s /sbin/nologin service_user
# 设置用户过期时间(2024-12-31)
sudo useradd -e 2024-12-31 temp_user
删除用户
# 删除用户但保留家目录
sudo userdel username
# 删除用户及其家目录
sudo userdel -r username
修改用户属性
# 修改用户名(将 old_user 重命名为 new_user)
sudo usermod -l new_user old_user
# 修改用户家目录路径并迁移文件
sudo usermod -d /new/home/dir -m username
# 修改用户默认 Shell(e.g., 改为 /bin/bash)
sudo usermod -s /bin/bash username
# 锁定用户(禁止登录)
sudo usermod -L username
# 解锁用户
sudo usermod -U username
2. 用户组管理
创建/删除组
# 创建新用户组
sudo groupadd dev_team
# 删除用户组
sudo groupdel dev_team
# 修改组名(将 old_group 改为 new_group)
sudo groupmod -n new_group old_group
将用户加入附加组
# 将用户添加到附加组(保留原有附加组)
sudo usermod -aG sudo,docker username
# 修改用户主组
sudo usermod -g developers username
查看用户组信息
# 查看用户所属组
groups username
# 查看用户 UID、GID 和所属组
id username
3. 密码管理
设置密码
# 交互式设置密码
sudo passwd username
# 非交互式设置密码(需安装 openssl)
echo "username:new_password" | sudo chpasswd
# 生成加密密码(适用于脚本)
openssl passwd -6 "your_password" # -6 表示 SHA512 加密
密码策略
# 强制用户下次登录时修改密码
sudo passwd -e username
# 查看密码过期信息
sudo chage -l username
# 设置密码有效期(e.g., 90 天后过期)
sudo chage -M 90 username
4. 用户信息查看
# 查看当前登录用户
who
# 查看所有用户列表
getent passwd
# 查看指定用户详细信息
finger username # 需安装 finger 包
5. 高级操作
批量创建用户
# 使用脚本批量创建(需提前准备用户列表文件)
for user in user1 user2 user3; do
sudo useradd -m $user
echo "$user:default_pass" | sudo chpasswd
done
限制用户权限
# 禁止用户 SSH 登录(修改其 Shell)
sudo usermod -s /sbin/nologin username
# 通过 sudoers 文件限制用户权限
echo "username ALL=(ALL) NOPASSWD: /usr/bin/apt" | sudo tee -a /etc/sudoers
6. 配置文件说明
- **
/etc/passwd
**:用户账户信息(UID、GID、Shell 等) - **
/etc/shadow
**:用户密码及过期策略 - **
/etc/group
**:用户组信息 - **
/etc/sudoers
**:用户 sudo 权限配置
注意事项
- 权限要求:所有用户管理操作需
root
或sudo
权限。 - 家目录迁移:修改用户家目录时需手动复制文件(或使用
-m
选项)。 - 生产环境谨慎操作:删除用户或组前确认无依赖服务。
以上命令适用于 Ubuntu、CentOS、Debian 等主流发行版。