047 adduser命令

命令说明

adduser 是 useradd 的交互式前端脚本(Debian/Ubuntu 的默认建用户方式),逐步提示设置密码与用户信息,自动创建家目录,对新手更友好;RHEL 系中它只是 useradd 的别名。

语法

adduser 用户名
adduser 选项 用户名(RHEL 系同 useradd)

常用参数

参数说明
(交互)Debian 版:运行后依次提示密码、全名、电话、房间号,可全回车跳过
--home 目录指定家目录路径
--shell Shell指定登录 shell
--ingroup 组指定主组
--uid UID指定 UID
--disabled-password创建但不设密码(配合 passwd 或 ssh key 使用)
--force-badpass跳过弱密码检查
-g / -G / -s / -mRHEL 系 adduser 即 useradd,参数完全相同

使用示例

$ adduser alice

Debian/Ubuntu 交互式创建 alice 全流程

$ adduser --shell /bin/bash --home /home/dev1 dev1

非交互指定 shell 与家目录

$ adduser bob docker

Debian 特色:把已有用户 bob 加入 docker 组

$ adduser --disabled-password --gecos "" jenkins

CI 场景:无密码静默建账号

$ usermod -aG sudo deploy

Ubuntu 给新用户授予 sudo 权限

$ passwd carol

创建后单独修改/设置密码

$ getent passwd alice

确认用户已写入 passwd

$ ls -ld /home/alice

确认家目录已自动创建且属主正确

实用技巧

  • 发行版差异大:Debian/Ubuntu 的 adduser 是独立交互脚本;CentOS/RHEL 的 adduser 是 useradd 的符号链接,行为完全一致,面试常考。
  • Debian 版 adduser 支持 adduser 用户 组 直接加组,等价于 usermod -aG,非常便捷。
  • 新用户默认继承 /etc/skel 下的 .bashrc、.bash_profile 等模板文件,自定义全局默认环境改这里。
  • Ubuntu 桌面用户常在 sudo 组、CentOS 在 wheel 组才能 sudo,建管理员账号时记得 -G 加上。
  • adduser 与 useradd 都写 /etc/passwd、/etc/shadow、/etc/group;手工改这些文件风险高,务必用命令或 vipw。