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 权限配置

注意事项

  1. 权限要求:所有用户管理操作需 rootsudo 权限。
  2. 家目录迁移:修改用户家目录时需手动复制文件(或使用 -m 选项)。
  3. 生产环境谨慎操作:删除用户或组前确认无依赖服务。

以上命令适用于 Ubuntu、CentOS、Debian 等主流发行版。