在Linux系统中,通过命令行添加用户是系统管理的基础操作之一,通常涉及useradd或adduser命令的使用,这两个命令在功能上有所差异:useradd是低级命令,提供更多参数选项,适合脚本化操作;而adduser是交互式的高级命令,会引导用户逐步输入信息,更适合手动操作,以下将详细讲解两种命令的使用方法、参数选项及相关注意事项,并通过表格对比关键参数,最后附上常见问题解答。

使用useradd命令添加用户
useradd是Linux系统中创建用户的核心命令,其基本语法为useradd [选项] 用户名,默认情况下,useradd仅创建用户账号,不会创建家目录、设置密码或配置用户信息,因此通常需要结合参数实现完整配置,以下是常用参数及其作用:
| 参数 | 作用 | 示例 |
|---|---|---|
-m |
自动创建家目录(默认不创建) | useradd -m username |
-d |
指定家目录路径 | useradd -d /home/custom username |
-s |
指定登录Shell(如/bin/bash或/bin/nologin) |
useradd -s /bin/bash username |
-G |
添加用户到附加组(多个组用逗号分隔) | useradd -G sudo,developers username |
-c |
添加用户注释信息(如全名) | useradd -c "John Doe" username |
-u |
指定用户ID(UID),避免冲突 | useradd -u 1001 username |
-p |
加密设置密码(不推荐明文,建议用passwd命令) |
useradd -p $(openssl passwd -1 password) username |
完整示例:
创建一个用户testuser,UID为2000,家目录为/home/testuser,Shell为/bin/bash,并添加到sudo组:
sudo useradd -m -d /home/testuser -s /bin/bash -G sudo -u 2000 -c "Test User" testuser
创建后需通过passwd testuser命令设置密码,否则用户无法登录。
使用adduser命令添加用户
adduser(Debian/Ubuntu系统)或adduser(基于Red Hat的系统可能为/usr/sbin/adduser)是一个交互式命令,会提示输入用户信息,并自动创建家目录和设置初始密码,其使用更简单,适合新手:

sudo adduser testuser
执行后会依次提示:
- 输入新用户密码(需确认两次)
- 输入用户全名(可选,直接回车跳过)
- 输入房间号、电话等信息(可选)
- 确认信息是否正确(输入
Y确认)
adduser默认会创建与用户名同名的家目录,并将用户加入users组,同时设置/bin/bash为登录Shell,若需修改默认行为,可通过/etc/adduser.conf配置文件调整。
用户创建后的验证与管理
-
检查用户是否创建成功:
id testuser # 查看UID、GID及所属组 cat /etc/passwd # 确认用户信息是否写入文件 ls -ld /home/testuser # 检查家目录权限(应为700)
-
修改用户信息:
(图片来源网络,侵删)- 修改用户名:
usermod -l newname oldname - 锁定/解锁用户:
usermod -L testuser/usermod -U testuser - 删除用户:
userdel -r testuser(-r参数会同时删除家目录)
- 修改用户名:
-
用户权限配置:
若需赋予管理员权限,将用户加入sudo组(Ubuntu/Debian)或wheel组(CentOS/RHEL):sudo usermod -aG sudo testuser # Ubuntu/Debian sudo usermod -aG wheel testuser # CentOS/RHEL
注意事项
- UID与GID冲突:系统默认从1000开始分配UID,若需自定义,确保UID未被其他用户占用。
- Shell选择:若仅用于服务运行,可设置
/sbin/nologin禁止登录,如useradd -s /sbin/nologin username。 - 密码安全:避免使用
-p明文设置密码,建议通过passwd命令交互式设置,并配合chage命令修改密码策略。 - 组管理:主组(-g)与附加组(-G)的区别:主组只能有一个,附加组可有多个,用户信息存储在
/etc/group中。
相关问答FAQs
Q1: useradd和adduser有什么区别?如何选择?
A: useradd是底层命令,参数灵活,适合自动化脚本,但默认不创建家目录和设置密码;adduser是交互式前端工具,在Debian/Ubuntu系统中默认调用useradd并自动处理家目录、密码等配置,适合手动操作,选择时,若需批量创建用户或自定义详细参数,用useradd;若快速创建并配置普通用户,用adduser更便捷。
Q2: 如何批量添加多个用户?
A: 可通过结合useradd和循环命令实现,使用for循环和用户列表文件:
#!/bin/bash
# 创建用户列表文件users.txt,每行一个用户名
for user in $(cat users.txt); do
sudo useradd -m -s /bin/bash -c "Batch User" $user
echo "User $user created. Set password via passwd."
done
执行后需为每个用户单独设置密码,若需批量设置密码,可使用chpasswd命令:
echo "user1:password1" | sudo chpasswd
注意:批量操作前建议先测试,避免误删或冲突。
