Linux useradd 命令详解
useradd
命令用于在 Linux 系统中创建新用户账号,并可以设置用户的主目录、Shell、用户 ID(UID)、组 ID(GID)等参数。它是管理用户账户的重要工具之一,通常与 passwd
、usermod
、userdel
等命令配合使用。
语法
useradd [选项] 用户名
参数说明:
用户名
:要创建的新用户的名称。
常用选项
选项 | 作用 |
---|---|
-d 目录 | 指定用户的主目录(默认 /home/用户名 )。 |
-m | 如果主目录不存在,则自动创建主目录。 |
-s shell | 指定用户的默认 shell(如 /bin/bash )。 |
-g 组名 | 指定用户的主组(必须是已存在的组)。 |
-G 组1,组2 | 指定用户的附加组(多个组用逗号分隔)。 |
-u UID | 指定用户的用户 ID(UID)。 |
-c "描述" | 设置用户的描述信息。 |
-e YYYY-MM-DD | 指定用户账号的过期日期。 |
-f 天数 | 账号过期后,多少天禁用(-1 表示永不禁用)。 |
-r | 创建系统用户(UID 小于 1000,不创建主目录)。 |
使用示例
1. 创建一个默认用户
sudo useradd user1
说明:
- 在
/etc/passwd
中添加user1
用户。 - 使用
/bin/bash
作为默认 Shell。 - 主目录未自动创建(需使用
-m
)。
2. 创建用户并自动创建主目录
sudo useradd -m user2
说明:
-m
选项确保/home/user2
目录自动创建。
3. 创建用户并指定主目录
sudo useradd -m -d /opt/user3 user3
说明:
-d /opt/user3
指定user3
的主目录为/opt/user3
。
4. 创建用户并指定 Shell
sudo useradd -m -s /bin/zsh user4
说明:
-s /bin/zsh
指定user4
使用zsh
作为默认 Shell。
5. 创建用户并指定 UID
sudo useradd -m -u 1050 user5
说明:
-u 1050
指定user5
的 UID 为1050
。
6. 创建用户并指定主组
sudo useradd -m -g developers user6
说明:
-g developers
将user6
加入developers
组(组必须已存在)。
7. 创建用户并添加到多个附加组
sudo useradd -m -G wheel,docker user7
说明:
user7
主要属于默认组,并额外加入wheel
和docker
组。
8. 创建用户并设置账号描述
sudo useradd -m -c "Test User" user8
说明:
-c "Test User"
添加描述信息。
9. 创建用户并设置过期日期
sudo useradd -m -e 2025-12-31 user9
说明:
-e
指定用户user9
的账号在 2025 年 12 月 31 日过期。
10. 创建用户并设置密码(需手动输入)
sudo useradd -m user10
sudo passwd user10
说明:
useradd
只创建用户,不设置密码,需passwd
进行密码设置。
11. 创建系统用户
sudo useradd -r -m system_user
说明:
-r
选项创建一个系统用户,UID 通常小于 1000。
查看用户信息
1. 检查用户是否存在
cat /etc/passwd | grep user1
示例输出:
user1:x:1001:1001::/home/user1:/bin/bash
2. 查看用户所属组
id user1
示例输出:
uid=1001(user1) gid=1001(user1) groups=1001(user1)
3. 显示用户详细信息
getent passwd user1
或
finger user1
删除用户
1. 仅删除用户,不删除主目录
sudo userdel user1
2. 删除用户并删除其主目录
sudo userdel -r user1
说明:
-r
选项会删除/home/user1
及用户相关文件。
修改用户信息
1. 修改用户名
sudo usermod -l newuser user1
2. 修改用户主目录
sudo usermod -d /new/path -m user1
3. 修改用户 Shell
sudo usermod -s /bin/zsh user1
常见问题及解决方案
1. useradd: Permission denied
原因:
- 需要
root
权限执行。
解决方案:
sudo useradd user1
2. useradd: group 'developers' does not exist
原因:
- 指定的主组
developers
不存在。
解决方案:
- 先创建组:
sudo groupadd developers
- 然后再创建用户:
sudo useradd -m -g developers user1
3. useradd: UID already in use
原因:
- 指定的 UID 已被其他用户占用。
解决方案:
- 选择一个未被占用的 UID,或让系统自动分配:
sudo useradd -m user1
总结
useradd
用于创建新用户,默认不会创建主目录。- 通过
-m
选项自动创建主目录,-d
指定主目录,-s
指定 Shell。 - 可以使用
-u
指定 UID,-g
指定主组,-G
指定附加组。 -e
设置账号过期时间,-r
创建系统用户。- 用户创建后,需
passwd
命令设置密码。 userdel
删除用户,-r
选项同时删除主目录。
useradd
是 Linux 用户管理的重要工具,配合 usermod
、userdel
等命令可以高效管理用户账号。
这里是封面: