adduser 命令详细介绍
adduser 是 Linux 系统中用于创建新用户的命令,属于交互式 / 友好型 用户创建工具(区别于底层的 useradd),默认会自动配置用户家目录、登录 shell、用户组等,简化了用户创建流程。
一、命令基本信息
| 项 | 说明 |
|---|---|
| 作用 | 创建新用户、配置用户基础信息(家目录、shell、组等) |
| 归属包 | Debian/Ubuntu:adduser 包;RHEL/CentOS:无独立包(需用 useradd) |
| 权限要求 | 仅 root 用户或拥有 sudo 权限的用户可执行 |
| 语法 | adduser [选项] 用户名 |
二、核心特性
- 交互式创建:默认执行时会引导用户设置密码、全名、房间号等可选信息(可通过选项跳过);
- 自动配置 :默认创建与用户名同名的主组、家目录(
/home/用户名)、登录 shell(/bin/bash); - 兼容性 :Debian/Ubuntu 系为主流支持,RHEL/CentOS/Rocky Linux 优先用
useradd(adduser是useradd的软链接)。
三、常用选项
| 选项 | 说明 |
|---|---|
-h, --help |
显示帮助信息并退出 |
-q, --quiet |
静默模式,减少输出信息 |
-disabled-password |
创建用户但禁用密码(无法通过密码登录,可通过密钥 /sudo 登录) |
-disabled-login |
创建用户且禁止登录(家目录也不会自动创建) |
-gecos GECOS |
非交互式设置 GECOS 字段(用户注释信息:全名、电话等,用逗号分隔) |
-home 目录 |
指定用户家目录(默认 /home/用户名) |
-shell shell路径 |
指定登录 shell(如 /bin/bash、/bin/sh、/sbin/nologin) |
-uid UID |
指定用户 UID(数字,需唯一,0 为 root,1-999 为系统用户,1000+ 普通用户) |
-g 组名/ID |
指定用户主组(必须是已存在的组) |
-G 组1,组2 |
指定用户附加组(多个组用逗号分隔) |
-no-create-home |
不创建用户家目录 |
-system |
创建系统用户(无家目录、UID 范围 1-999,用于运行服务) |
四、典型用法示例
1. 基础交互式创建用户
bash
运行
sudo adduser testuser
执行后会依次提示:
- 设置用户密码(需输入两次);
- 可选填写:全名、房间号、工作电话、家庭电话、其他注释(直接回车跳过);
- 确认信息(输入
Y确认)。
创建完成后:
- 自动生成
/home/testuser家目录; - 生成同名主组
testuser; - 登录 shell 为
/bin/bash。
2. 非交互式创建用户(跳过密码 / 注释)
bash
运行
# 创建用户并禁用密码,非交互式设置GECOS注释,指定shell
sudo adduser --disabled-password --gecos "Test User,,," --shell /bin/zsh testuser2
--gecos "Test User,,,":注释字段为 "Test User",后续空字段用逗号占位;--disabled-password:无需设置密码,用户无法用密码登录(可后续用passwd testuser2设置)。
3. 指定 UID、主组、附加组
bash
运行
# 创建UID为1005、主组为staff、附加组为sudo和dev的用户
sudo adduser --uid 1005 --g staff --G sudo,dev testuser3
4. 创建系统用户(无登录权限)
bash
运行
# 创建系统用户nginx,无家目录、禁止登录
sudo adduser --system --no-create-home --shell /sbin/nologin nginx
5. 仅创建用户(不设置密码 / 注释)
bash
运行
sudo adduser --quiet --disabled-password --gecos "" testuser4
五、与 useradd 的区别
| 特性 | adduser(Debian/Ubuntu) |
useradd(通用) |
|---|---|---|
| 交互性 | 默认交互式,引导配置信息 | 非交互式,需手动指定所有参数 |
| 家目录 | 自动创建(/home/用户名) |
需加 -m 才创建,否则不创建 |
| 密码 | 引导设置,或通过选项禁用 | 需手动执行 passwd 设置(默认无密码) |
| 主组 | 自动创建同名主组 | 默认使用 users 组(需 -g 指定) |
| 适用系统 | Debian/Ubuntu 为主,RHEL/CentOS 无独立工具 | 所有 Linux 发行版通用 |
六、注意事项
- 权限 :必须用
root或sudo执行,普通用户无创建用户权限; - UID 唯一性:指定 UID 时需确保未被占用,否则报错;
- 组存在性 :
-g/-G指定的组必须已存在,否则需先用groupadd创建; - shell 合法性 :指定的 shell 需在
/etc/shells中存在,否则登录可能异常; - 家目录权限 :默认创建的家目录权限为
700(仅用户自身可访问),如需修改可手动调整。
七、相关命令
passwd 用户名:为用户设置 / 修改密码;userdel 用户名:删除用户(加-r同时删除家目录);usermod:修改已存在用户的属性(UID、组、shell 等);groupadd:创建用户组;id 用户名:查看用户的 UID、GID、所属组信息。