Linux useradd
命令详细教程
useradd
是 Linux 系统中用于创建新用户账户的基础命令,它通过配置文件(如/etc/passwd
、/etc/shadow
)和默认设置自动完成用户创建流程。本文将详细介绍其用法、参数及相关配置。- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
useradd [选项] 用户名
- 核心功能:
- 在系统中创建新用户账户。
- 自动生成用户主目录(默认
/home/用户名
)。 - 分配用户 ID(UID)和组 ID(GID)。
- 配置用户基本信息(如 shell、过期时间等)。
二、常用选项
选项 | 功能描述 |
---|---|
-d 目录 | 指定用户的主目录(如 -d /data/user1 ) |
-m | 自动创建主目录(若不存在) |
-M | 不创建主目录(默认不创建,除非 -m 已指定) |
-g 组名 | 指定用户的初始主组(如 -g developers ) |
-G 组名1,组名2 | 指定用户的附加组(如 -G sudo,adm ) |
-s shell | 指定用户的登录 shell(如 -s /bin/bash ) |
-u UID | 指定用户的 UID(需手动确保唯一性) |
-e 日期 | 设置账户过期日期(格式:YYYY-MM-DD) |
-f 天数 | 设置密码过期后账户的宽限期(如 -f 7 ) |
-c 注释 | 添加用户注释(如 -c "系统管理员" ) |
-N | 不创建与用户名同名的组(默认会创建) |
三、实际操作示例
1. 创建普通用户(默认配置)
useradd testuser # 创建用户 testuser,使用默认配置
- 默认行为:
- 主目录:
/home/testuser
(需配合-m
自动创建)。 - 主组:
testuser
(同名组)。 - shell:
/bin/sh
(或系统默认 shell)。 - UID:自动分配(通常从 1000 开始递增)。
- 主目录:
2. 创建用户并指定主目录
useradd -m -d /data/admin admin # 创建用户 admin,主目录为 /data/admin
3. 将用户添加到多个组
# 创建用户 dev1,主组为 developers,附加组为 sudo 和 docker
useradd -m -g developers -G sudo,docker dev1
4. 创建系统用户(无交互式 shell)
useradd -r -s /sbin/nologin nginx # 创建系统用户 nginx,用于运行服务
-r
:创建系统用户(UID 通常小于 1000)。-s /sbin/nologin
:禁止用户登录交互式 shell。
5. 设置用户账户过期时间
useradd -e 2025-12-31 tempuser # 创建临时用户,账户2025年底过期
四、配置文件与默认值
useradd
的默认行为由以下配置文件控制:
-
/etc/default/useradd
:全局默认设置GROUP=100 # 默认组 ID HOME=/home # 主目录前缀 INACTIVE=-1 # 密码过期后账户不锁定 EXPIRE= # 账户默认不过期 SHELL=/bin/bash # 默认 shell SKEL=/etc/skel # 主目录模板目录 CREATE_MAIL_SPOOL=yes # 是否创建邮件假脱机文件
-
/etc/skel/
:主目录模板- 新用户主目录会复制此目录下的所有文件(如
.bashrc
、.profile
)。
- 新用户主目录会复制此目录下的所有文件(如
-
/etc/login.defs
:系统级用户账户配置- 定义 UID/GID 范围、密码策略等。
五、验证用户创建结果
创建用户后,可通过以下命令验证:
-
查看用户信息:
id username # 显示用户 UID、GID 和所属组 cat /etc/passwd | grep username # 查看用户账户信息
-
检查主目录:
ls -ld /home/username # 查看主目录权限和所有者
-
设置密码:
passwd username # 为新用户设置密码
六、注意事项
-
权限要求:
必须使用sudo
或 root 权限执行useradd
。 -
UID 唯一性:
使用-u
手动指定 UID 时,需确保该 UID 未被其他用户使用(可通过/etc/passwd
检查)。 -
主目录与模板:
若不使用-m
选项,需手动创建主目录并配置权限。 -
系统用户与服务账户:
运行系统服务(如 Web 服务器、数据库)时,建议创建专用系统用户(如nginx
、mysql
),并限制其登录权限。
七、与其他命令对比
命令 | 功能 | 适用场景 |
---|---|---|
useradd | 创建用户账户(非交互式) | 批量创建用户、脚本自动化 |
adduser | 创建用户账户(交互式) | 手动创建用户,引导输入信息 |
usermod | 修改用户账户属性 | 修改现有用户的组、shell 等 |
userdel | 删除用户账户 | 移除不再需要的用户 |
八、总结
useradd
是 Linux 系统中创建用户的基础工具,核心用法可总结为:
- 基本创建:
useradd -m username
- 指定主组:
useradd -g groupname username
- 添加附加组:
useradd -G sudo,docker username
- 系统用户:
useradd -r -s /sbin/nologin servicename
合理配置用户账户是系统安全的重要环节,建议结合 usermod
和 userdel
命令管理用户生命周期,并定期清理不再使用的账户。