上一篇
在 Linux 中,使用
useradd 或
adduser 命令创建用户,通常需要 root 权限,基本命令格式为
sudo useradd 用户名,之后使用
passwd 用户名 为其设置密码。
Linux 用户创建的核心命令
useradd 命令(基础方法)
sudo useradd [选项] <用户名>
常用选项详解:
-m:自动创建用户家目录(默认在/home/用户名)-d /path:自定义家目录路径(如-d /data/john)-s /bin/bash:指定登录 Shell(支持/sbin/nologin禁止登录)-G group1,group2:将用户加入附加组-u 1005:手动指定用户 UID(避免冲突)-e YYYY-MM-DD:设置账户过期日期
操作示例:
sudo useradd -m -s /bin/bash -G developers,webadmin john
adduser 命令(交互式向导,推荐新手)
sudo adduser <用户名> # Debian/Ubuntu 专属
执行后按提示输入密码、全名等信息,自动完成家目录创建和基础配置。
关键配置与安全设置
设置用户密码
创建后必须用 passwd 激活账户:

sudo passwd john # 按提示输入两次密码
安全建议:
- 密码长度 ≥ 12 位,混合大小写、数字、符号
- 定期更新:
chage -M 90 john(90 天强制更换)
用户配置文件解析
/etc/passwd:存储用户基本信息john:x:1001:1001:John Doe:/home/john:/bin/bash # 依次为:用户名:密码占位符:UID:GID:描述:家目录:Shell
/etc/shadow:加密密码及策略(仅 root 可读)/etc/group:用户组定义
自定义用户环境
初始化文件模板位于 /etc/skel/:
sudo cp /etc/skel/.bashrc /home/john/ # 复制默认配置
进阶场景操作指南
创建系统用户(无登录权限)
适用于运行服务的守护进程:

sudo useradd -r -s /usr/sbin/nologin mysql # -r 表示系统用户
用户组管理
- 创建组:
sudo groupadd developers - 追加组:
sudo usermod -aG developers john(-a保留原有组)
批量创建用户
通过脚本自动化处理:
for user in alice bob charlie; do
sudo useradd -m $user
echo "$user:Passw0rd!" | sudo chpasswd
done
验证与故障排查
- 检查用户信息:
id john # 查看 UID/GID 及所属组 grep john /etc/passwd # 核对配置
- 测试登录:
su - john # 切换用户(需输入密码)
- 常见错误:
- 用户已存在:
useradd: user 'john' already exists - 权限不足:确保使用
sudo - 家目录未生成:检查
-m参数或磁盘空间
- 用户已存在:
用户删除操作
安全删除用户及关联文件:

sudo userdel -r john # -r 删除家目录和邮件
️ 警告:生产环境删除前务必备份数据!
安全最佳实践
- 最小权限原则:用户只拥有必需权限(通过组精细控制)
- 禁用 root 远程登录:修改
/etc/ssh/sshd_config中PermitRootLogin no - 定期审计:使用
last查看登录记录,chage -l john检查密码策略
引用说明
- 命令文档:
man useradd,man passwd,man groupadd - Linux 标准规范参考:Filesystem Hierarchy Standard (FHS)
- 安全建议:基于 CIS Linux Benchmarks 强化指南
本文严格遵守 Linux 官方操作规范,所有命令均在 Ubuntu 22.04/CentOS 9 验证通过,实际部署时请结合发行版手册调整参数,关键操作建议先在测试环境验证。
