Linux命令adduser详细介绍

adduser 命令详细介绍

adduser 是 Linux 系统中用于创建新用户的命令,属于交互式 / 友好型 用户创建工具(区别于底层的 useradd),默认会自动配置用户家目录、登录 shell、用户组等,简化了用户创建流程。

一、命令基本信息

项 说明
作用 创建新用户、配置用户基础信息(家目录、shell、组等)
归属包 Debian/Ubuntu:adduser 包;RHEL/CentOS:无独立包(需用 useradd)
权限要求 仅 root 用户或拥有 sudo 权限的用户可执行
语法 adduser [选项] 用户名

二、核心特性

  1. 交互式创建:默认执行时会引导用户设置密码、全名、房间号等可选信息(可通过选项跳过);
  2. 自动配置 :默认创建与用户名同名的主组、家目录(/home/用户名)、登录 shell(/bin/bash);
  3. 兼容性 :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 发行版通用

六、注意事项

  1. 权限 :必须用 root 或 sudo 执行,普通用户无创建用户权限;
  2. UID 唯一性:指定 UID 时需确保未被占用,否则报错;
  3. 组存在性 :-g/-G 指定的组必须已存在,否则需先用 groupadd 创建;
  4. shell 合法性 :指定的 shell 需在 /etc/shells 中存在,否则登录可能异常;
  5. 家目录权限 :默认创建的家目录权限为 700(仅用户自身可访问),如需修改可手动调整。

七、相关命令

  • passwd 用户名:为用户设置 / 修改密码;
  • userdel 用户名:删除用户(加 -r 同时删除家目录);
  • usermod:修改已存在用户的属性(UID、组、shell 等);
  • groupadd:创建用户组;
  • id 用户名:查看用户的 UID、GID、所属组信息。
相关推荐
wtblszn3 小时前
实验室通风设备远程监控运维管理系统方案
运维
syagain_zsx4 小时前
spdlog实战:日志分级、滚动与性能调优
linux·c++·日志库·二次开发日志库
GeW16 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx18 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位20 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
对象存储与RustFS20 小时前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
骑着蜗牛撵大象32721 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
众壹新能源科技21 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..1 天前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划1 天前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络