在 Linux 系统管理中,用户和权限管理是最基础的工作之一。新建用户时,有时只需简单的一条命令,有时也需要更细粒度的 UID/GID 配置。本文总结了在 RockyLinux、CentOS、Ubuntu 等常见发行版下使用 useradd 与 adduser 的方法和注意事项。
一、useradd 与 adduser 的区别
-
useradd- 底层工具,所有发行版都支持。
- 执行后无提示信息,返回 0 即代表成功。
- 适合自动化脚本。
-
adduser- 在 Debian/Ubuntu 上是对
useradd的友好封装(Perl 脚本),交互式,有提示。 - 在 RockyLinux/CentOS 上
adduser只是useradd的软链接,行为完全相同,也不会有提示信息。
- 在 Debian/Ubuntu 上是对
👉 所以:在 RockyLinux/CentOS 下用 adduser ≈ useradd,而在 Ubuntu/Debian 下 adduser 更适合手动创建用户。
二、最常见的用户创建方式
在大多数情况下,你不需要额外创建组,系统会自动完成。
1. 创建普通用户(推荐方式)
sudo useradd -m langpusi
sudo passwd langpusi
说明:
-m:自动创建家目录/home/langpusi。- 系统会自动创建一个与用户名相同的组
langpusi,并将用户设置为该组的成员。
验证:
id langpusi
输出示例:
uid=1001(langpusi) gid=1001(langpusi) groups=1001(langpusi)
2. 创建指定 UID 的用户
有时需要与其他系统保持 UID 一致(例如挂载 NFS 或科研集群环境)。
sudo useradd -u 1500 -m langpusi
sudo passwd langpusi
3. 把用户加入已有组(附加组)
例如多个用户需要共享 /data/upload 目录,可以这样:
# 先建一个共享组(仅第一次需要)
sudo groupadd upload
# 创建用户,并指定 upload 作为主组
sudo useradd -m -g upload langpusi
sudo passwd langpusi
# 或者把已有用户追加到 upload 组
sudo usermod -aG upload langpusi
验证:
id langpusi
输出示例:
uid=1001(langpusi) gid=1001(upload) groups=1001(upload),1002(langpusi)
4. 指定 Shell
默认新用户的登录 Shell 可能是 /bin/sh,如果需要 bash:
sudo useradd -m -s /bin/bash langpusi
三、验证用户和组
- 查看用户信息:
id langpusi
- 查看
/etc/passwd和/etc/group:
grep langpusi /etc/passwd
grep upload /etc/group
四、关于“没有提示信息”
很多朋友在 RockyLinux/CentOS 下执行 useradd 或 adduser 时发现“没有任何提示”。
这是正常的,因为:
- Linux 的设计哲学:无输出即成功。
- 如果出错(如 UID 冲突、组不存在),系统才会报错。
因此,不要担心“没提示”,只要通过 id langpusi 验证即可。
五、总结
- 最常用:
useradd -m langpusi && passwd langpusi。 - 默认会建同名组,不必手动
groupadd。 - 只有在多人共享目录或需要固定 UID/GID 时才手动建组。
- 在 RockyLinux/CentOS:
adduser=useradd,没有提示。 - 在 Ubuntu/Debian:
adduser提供交互提示,适合手动操作。