"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 charlie将charlie的主要组设为developers(默认会创建与用户名同名的组)。-G <组1,组2,...>:"additional groups",指定用户的附加组(多个组用逗号分隔),例如useradd -G sudo,staff dave让dave同时属于sudo和staff组。-u <用户ID>:"user ID",指定用户的UID(用户ID),需确保UID未被占用,例如useradd -u 1005 eve为eve分配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_user让temp_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,同时加入sudo和wheel组(获得管理员权限)。示例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,加入dev和test附加组,并创建主目录。示例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文件查看或修改默认值。