useradd命令

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
  • 在某些发行版中,adduseruseradd的更友好的前端,提供更多交互式体验
  • 创建用户后,可以使用id username命令验证用户信息
  • 使用-G选项添加到多个组时,组名之间不要有空格
  • 如果需要为用户设置复杂的权限,考虑使用ACL(访问控制列表)
  • 在生产环境中,考虑使用集中式用户管理系统(如LDAP)