useradd 命令 #
useradd
命令用于创建新的用户账户或更新默认的新用户信息。它是 Linux 系统中用户管理的基本命令之一。
语法 #
useradd [选项] 用户名
常用选项 #
选项 | 描述 |
---|---|
-c, --comment 注释 |
添加用户账户的注释(通常是全名) |
-d, --home 主目录 |
指定用户的主目录(默认为/home/用户名) |
-e, --expiredate 日期 |
设置账户过期日期(格式:YYYY-MM-DD) |
-f, --inactive 天数 |
密码过期后多少天禁用账户(-1表示永不禁用) |
-g, --gid 组名或ID |
指定用户的主要组(默认创建与用户名同名的组) |
-G, --groups 组列表 |
指定用户的附加组(逗号分隔,无空格) |
-k, --skel 目录 |
指定骨架目录(包含要复制到用户主目录的文件) |
-m, --create-home |
创建用户的主目录(如果不存在) |
-M |
不创建用户的主目录 |
-N, --no-user-group |
不创建与用户同名的组 |
-p, --password 密码 |
设置加密密码(不推荐,应使用passwd命令) |
-r, --system |
创建系统账户(UID小于1000,无主目录) |
-s, --shell Shell路径 |
指定用户的登录shell |
-u, --uid UID |
指定用户的UID |
-U, --user-group |
创建与用户同名的组(默认) |
常见用法 #
1. 创建基本用户 #
useradd username
这将创建一个名为"username"的新用户,但不会创建主目录。
2. 创建用户并设置主目录 #
useradd -m username
这将创建用户并在/home下创建同名的主目录。
3. 创建用户并指定UID #
useradd -u 1500 username
4. 创建用户并指定主组 #
useradd -g developers username
5. 创建用户并添加到多个组 #
useradd -G developers,admins,testers username
6. 创建用户并设置shell #
useradd -s /bin/bash username
7. 创建用户并添加注释 #
useradd -c "John Doe" username
8. 创建系统用户 #
useradd -r sysuser
9. 创建用户并设置密码过期日期 #
useradd -e 2023-12-31 username
10. 创建用户并设置自定义主目录 #
useradd -m -d /opt/username username
完整示例 #
创建一个完整配置的用户:
useradd -m -d /home/johndoe -c "John Doe" -s /bin/bash -G developers,admins -e 2023-12-31 johndoe
这将创建一个名为"johndoe"的用户,设置主目录为"/home/johndoe",注释为"John Doe",使用bash作为登录shell,添加到developers和admins组,并设置账户在2023年12月31日过期。
设置密码 #
创建用户后,需要为用户设置密码:
passwd username
系统配置文件 #
useradd
命令使用以下配置文件:
/etc/default/useradd
:默认值配置/etc/login.defs
:系统范围的设置/etc/skel/
:包含要复制到新用户主目录的文件
查看默认设置 #
useradd -D
这将显示创建新用户时使用的默认值。
修改默认设置 #
useradd -D -s /bin/bash
这将更改默认的shell为bash。
与其他用户管理命令的关系 #
useradd
:创建新用户usermod
:修改现有用户userdel
:删除用户passwd
:设置或更改用户密码chage
:更改用户密码过期信息
提示 #
- 在大多数情况下,应该使用
-m
选项创建用户的主目录 - 使用
passwd
命令设置密码,而不是useradd
的-p
选项 - 系统用户通常用于运行服务,UID通常小于1000
- 在某些发行版中,
adduser
是useradd
的更友好的前端,提供更多交互式体验 - 创建用户后,可以使用
id username
命令验证用户信息 - 使用
-G
选项添加到多个组时,组名之间不要有空格 - 如果需要为用户设置复杂的权限,考虑使用ACL(访问控制列表)
- 在生产环境中,考虑使用集中式用户管理系统(如LDAP)