200字
useradd
2025-10-10
2025-10-10

"User add" 的缩写,是一个用于在Linux系统中创建新用户账户的命令行工具。

该命令通过修改系统用户配置文件(如 /etc/passwd/etc/shadow/etc/group 等)来添加新用户,是系统管理员管理用户账户的核心命令之一。

 useradd [选项] <用户名>

常用选项

  • -d <目录>:"home directory",指定新用户的主目录路径,例如 useradd -d /home/john john 为用户 john 设置主目录为 /home/john(默认会以用户名为目录名创建在 /home 下)。

  • -m:"create home directory",自动创建用户的主目录(若不存在),例如 useradd -m alice 会创建 /home/alice 并复制默认配置文件(如 .bashrc)。

  • -M:"do not create home directory",不创建用户的主目录,适用于系统用户或无需主目录的账户,例如 useradd -M apache 创建 apache 服务用户时不生成主目录。

  • -s <shell>:"login shell",指定用户的默认登录shell,例如 useradd -s /bin/zsh bob 为用户 bob 设置默认shell为 zsh(默认通常为 /bin/bash)。

  • -g <组名/组ID>:"initial group",指定用户的初始(主要)组,例如 useradd -g developers charliecharlie 的主要组设为 developers(默认会创建与用户名同名的组)。

  • -G <组1,组2,...>:"additional groups",指定用户的附加组(多个组用逗号分隔),例如 useradd -G sudo,staff davedave 同时属于 sudostaff 组。

  • -u <用户ID>:"user ID",指定用户的UID(用户ID),需确保UID未被占用,例如 useradd -u 1005 eveeve 分配UID 1005(默认会自动分配未使用的UID)。

  • -c <注释>:"comment",添加用户的注释信息(如全名、职位),例如 useradd -c "Mike Smith, Engineer" mike/etc/passwd 中记录注释。

  • -e <日期>:"expiration date",设置用户账户的过期日期(格式 YYYY-MM-DD),例如 useradd -e 2025-12-31 temp_usertemp_user 在2025年12月31日后失效。

  • -p <密码>:"password",设置用户的加密密码(需预先用 openssl passwd 生成加密字符串),例如 useradd -p $(openssl passwd -1 "mypass") frank(不推荐直接使用,建议用 passwd 后续设置)。

  • -r:"system user",创建系统用户(UID通常小于1000),适用于服务账户,例如 useradd -r -M nginx 创建 nginx 系统用户,无主目录且UID自动分配。

参考示例

  • 示例1:创建普通用户并自动生成主目录 执行 useradd -m lisa,创建用户 lisa 并自动生成 /home/lisa 主目录,默认shell为 /bin/bash,主要组为 lisa

  • 示例2:创建用户并指定主目录和shell 执行 useradd -d /opt/tom -m -s /bin/sh tom,为用户 tom 创建主目录 /opt/tom,默认shell设为 /bin/sh(适合服务用户)。

  • 示例3:创建用户并加入附加组 执行 useradd -g users -G sudo,wheel jerry,将 jerry 的主要组设为 users,同时加入 sudowheel 组(获得管理员权限)。

  • 示例4:创建系统用户(服务账户) 执行 useradd -r -M -s /sbin/nologin mysql,创建 mysql 系统用户,无主目录,默认shell为 /sbin/nologin(禁止登录系统,仅用于服务运行)。

  • 示例5:创建带注释和过期时间的临时用户 执行 useradd -c "Temporary Staff" -e 2025-06-30 temp_worker,创建 temp_worker 用户,注释为“临时员工”,2025年6月30日后账户失效。

  • 示例6:创建用户并手动设置密码 执行 useradd -m sarah 后,再执行 passwd sarah,系统会提示输入并确认密码(推荐方式,比 -p 选项更安全)。

  • 示例7:创建用户时指定UID和附加组 执行 useradd -u 1500 -G dev,test -m kevin,为 kevin 分配UID 1500,加入 devtest 附加组,并创建主目录。

  • 示例8:在脚本中批量创建用户 脚本中执行:

     for user in alice bob charlie; do
       useradd -m -s /bin/bash $user
       echo "User $user created"
     done

    批量创建3个用户并自动生成主目录,适合新系统初始化时添加多个普通用户。

注意useradd 创建用户后,默认密码未设置(账户锁定),需用 passwd <用户名> 命令设置密码才能登录。此外,不同Linux发行版的默认配置(如UID范围、默认shell)可能略有差异,可通过 /etc/default/useradd 文件查看或修改默认值。

评论