useradd
在类似Unix的操作系统上,useradd命令创建一个新用户或为新用户设置默认信息。 本文档介绍了useradd的Linux版本。
查看英文版
1 useradd 运行系统环境
2 useradd 描述
3 useradd 语法
4 useradd 示例
useradd 运行系统环境
Linux
useradd 描述
useradd是用于将用户添加到系统的低级实用程序。 通常,应该使用更友好的adduser。
您的操作系统可能附带稍微不同的useradd版本。 在使用它创建新帐户之前,请先检查您的文档。 本文档引用了一些经常在基于Debian的Linux变体上使用的选项,但它们代表了useradd的一般用法。
如果在不使用-D选项的情况下调用useradd命令,则会使用命令行上指定的值以及系统的默认值来创建新的用户帐户。 根据命令行选项,useradd命令将更新系统文件,并且还可以创建新用户的主目录并复制初始文件。
默认情况下,还将为新用户创建一个组(请参见下面的-g,-N,-U选项和USERGROUPS_ENAB变量)。
查看英文版
useradd 语法
useradd [options] LOGIN
useradd -D
useradd -D [options]选项
-c,-- comment COMMENT | COMMENT可以是任何文本字符串。它通常是login的简短描述,当前用作用户全名的字段。 |
-d,--home HOME_DIR | 将使用HOME_DIR作为用户登录目录的值来创建新用户。默认是将LOGIN名称附加到BASE_DIR并将其用作登录目录名称。目录HOME_DIR不必存在,但是如果缺少,则不会创建。 |
-D,--defaults | 设置新的默认值。请参阅下面有关更改新用户默认值的部分。 |
-e,-- expiredate EXPIRE_DATE |
用户帐户将被禁用的日期。日期以YYYY-MM-DD格式指定。 如果未指定,则useradd将使用/ etc / default / useradd中EXPIRE变量指定的默认到期日期,或者默认为空字符串(无到期)。 |
-f,-- inactive INACTIVE |
密码过期后直到永久禁用该帐户的天数。密码过期后,值0将禁用该帐户,而值-1将禁用该功能。 如果未指定,则useradd将使用/ etc / default / useradd中的INACTIVE变量指定的默认非活动期,或者默认为-1。 |
-g,-- gid GROUP |
用户初始登录组的组名或编号。组名必须存在。组号必须引用已经存在的组。 如果未指定,则useradd的行为将取决于/etc/login.defs中的USERGROUPS_ENAB变量。如果将此变量设置为yes(或在命令行上指定-U / --user-group),则将为该用户创建一个与登录名相同的组。如果变量设置为no(或在命令行上指定-N / --no-user-group),则useradd会将新用户的主要组设置为GROUP所指定的值/ etc / default / useradd中的变量,或者默认为100。 |
-G,-- groups GROUP1 [,GROUP2,... [,GROUPN ]]] | 包含用户作为成员的组的列表。每一组之间用逗号隔开,中间没有空格。这些组与-g选项给定的组受到相同的限制。默认设置是用户仅属于初始组。 |
-h,--help | 显示帮助消息,然后退出。 |
-k,-- skel SKEL_DIR |
SKEL_DIR是框架目录,当用户目录由useradd创建时,它包含要复制到用户主目录中的文件和目录。 仅当指定了-m(或--create-home)选项时,此选项才有效。 如果未设置此选项,则框架目录由/ etc / default / useradd中的SKEL变量或默认情况下/ etc / skel中的SKEL变量定义。如果可能,将复制ACL和扩展属性。 |
-K,-- key KEY = VALUE |
覆盖/etc/login.defs的默认值(UID_MIN,UID_MAX,UMASK,PASS_MAX_DAYS等)。 示例:-K PASS_MAX_DAYS = -1可以在创建系统帐户以关闭密码时限时使用,即使系统帐户根本没有密码也是如此。可以指定多个-K选项,例如:-K UID_MIN = 100 -K UID_MAX = 499 |
-l,--no-log-init |
不要将用户添加到lastlog和faillog数据库。 默认情况下,将重置lastlog和faillog数据库中的用户条目,以避免重用先前删除的用户的条目。 为了与以前版本的兼容性useradd的,在-O选项也支持这一目的。 |
-m,-- create-home |
如果用户的主目录不存在,则创建它。骨架目录(可以使用-k选项定义)中包含的文件和目录将被复制到主目录。 默认情况下,如果未指定此选项并且未启用CREATE_HOME,则不会创建主目录。 |
-M | 难道没有创建用户的主目录,即使从广角设置系统/etc/login.defs的(CREATE_HOME)设置为是。 |
-N,-- no-user-group |
不要创建与用户同名的组,而是将用户添加到-g选项或/ etc / default / useradd中的GROUP变量指定的组中。缺省行为(如果未指定-g,-N和-U选项)由/etc/login.defs中的USERGROUPS_ENAB变量定义。 |
-o,--non-unique |
允许创建具有重复(非唯一)UID的用户帐户。 该选项仅与-u选项结合使用才有效。 |
-p,-- password PASSWORD |
该加密的密码,通过隐窝返回。默认为禁用密码。 注意:不建议使用此选项,因为列出进程的用户(例如,使用ps命令)将看到密码(或加密密码)。 您应该确保密码遵守系统的密码策略。 |
-r,--system |
创建一个系统帐户。 将在/ etc / shadow中创建不带任何老化信息的系统用户,并在/etc/login.defs中定义的SYS_UID_MIN-SYS_UID_MAX范围内选择其数字标识符,而不是UID_MIN-UID_MAX(及其创建时使用的GID副本)组)。请注意,useradd命令不会创建这样一个用户的主目录,而不管默认设置的/etc/login.defs的(CREATE_HOME)。如果要创建系统帐户的主目录,则必须指定-m选项。 |
-R,--root CHROOT_DIR | 在应用更改CHROOT_DIR目录,并从使用配置文件CHROOT_DIR目录。 |
-s,-- shell SHELL | 用户的登录shell的名称。缺省值是将该字段保留为空白,这使系统选择/ etc / default / useradd中的SHELL变量指定的缺省登录shell ,或者缺省情况下为空字符串。 |
-u,--uid UID |
用户ID的数值。除非使用-o选项,否则该值必须唯一。该值必须为非负数。默认值为使用大于或等于UID_MIN且大于其他所有用户的最小ID值。 另请参见-r选项和UID_MAX描述。 |
-U,-- user-group |
创建一个与用户同名的组,然后将该用户添加到该组中。 缺省行为(如果未指定-g,-N和-U选项)由/etc/login.defs中的USERGROUPS_ENAB变量定义。 |
-Z,-- selinux-user SEUSER | SELinux用户,用于用户登录。默认值是将该字段保留为空白,这将导致系统选择默认的SELinux用户。 |
仅使用-D选项调用时,useradd将显示当前默认值。与-D和其他选项一起调用时,useradd将更新指定选项的默认值。
有效的默认更改选项为:
-b,-- base-dir BASE_DIR |
新用户主目录的路径 前缀。如果在创建新帐户时未使用-d选项,则将用户名附加到BASE_DIR的末尾以形成新用户的主目录名。此选项在/ etc / default / useradd中设置HOME变量。 |
-e,-- expiredate EXPIRE_DATE |
禁用用户帐户的日期。 此选项在/ etc / default / useradd中设置EXPIRE变量。 |
-f,-- inactive INACTIVE |
密码过期后的天数,帐户将被禁用。 此选项在/ etc / default / useradd中设置INACTIVE变量。 |
-g,-- gid GROUP |
新用户的初始组的组名或ID(使用-N / --no-user-group或/etc/login.defs中的USERGROUPS_ENAB变量设置为no时)。命名组必须存在,并且数字组ID必须具有现有条目。此选项在/ etc / default / useradd中设置GROUP变量。 |
-s,-- shell SHELL |
新用户的登录外壳名称。 此选项在/ etc / default / useradd中设置SHELL变量。 |
系统管理员负责将默认用户文件放置在/ etc / skel /目录(或在/ etc / default / useradd或命令行中指定的任何其他框架目录)中。
注意事项您不能将用户添加到NIS或LDAP组。这必须在相应的服务器上执行。
同样,如果用户名已经存在于NIS或LDAP等外部用户数据库中,则useradd将拒绝用户帐户创建请求。
通常建议仅使用以小写字母或下划线开头,后接小写字母,数字,下划线或破折号的用户名。它们可以以美元符号结尾。描述有效用户名的正则表达式为:
[a-z _] [a-z0-9 _-] * [$]?
唯一的限制是用户名既不能以破折号(' - ')或加号(' + ')或代字号(' 〜 ')开头,也不能包含冒号(' : '),逗号(' , ')或空格(空格:“”,行尾:“ \ n ”,制表符:“ \ t ”,等等)。请注意,使用斜杠(' / ')可能会破坏用于定义用户主目录的默认算法。
用户名最多只能包含32个字符。
组态/etc/login.defs中的以下配置变量更改了此工具的行为:
名称 | 类型 | 描述 |
---|---|---|
CREATE_HOME | 布尔值 |
指示默认情况下是否应为新用户创建主目录。 此设置不适用于系统用户,可以在命令行上覆盖。 |
GID_MAX,GID_MIN | 数 |
useradd,groupadd或newusers用于创建常规组的组ID范围。 作为默认值GID_MIN是1000 ; GID_MAX的默认值为60000。 |
MAIL_DIR | 串 | 邮件假脱机目录。当邮箱的相应用户帐户被修改或删除时,需要用它来操作邮箱。如果未指定,则使用编译时默认值。 |
MAIL_FILE | 串 | 定义用户邮件假脱机文件相对于其主目录的位置。 |
该MAIL_DIR和MAIL_FILE变量由useradd的,usermod命令,和则userdel创建,移动或删除用户的邮件池。
MAX_MEMBERS_PER_GROUP | 数 |
每个组条目的最大成员数。当达到最大值时,将在/ etc / group中启动一个新的组条目(行)(具有相同的名称,相同的密码和相同的组ID)。 默认值为0,表示组中的成员数没有限制。 此功能(拆分组)可以帮助限制组文件中的行长。确保NIS组的行不超过1024个字符非常有用。 如果您需要强制执行此限制,则可以使用25。 注意:并非所有工具都支持拆分组,即使阴影工具套件等高级工具也不支持。除非确实需要,否则不应使用此变量。 |
PASS_MAX_DAYS | 数 | 密码可以使用的最大天数。如果密码早于此密码,则将强制更改密码。如果未指定,则将假定为-1(禁用限制)。 |
PASS_MIN_DAYS | 数 | 两次密码更改之间允许的最少天数。早于此时间进行的任何密码更改都将被拒绝。如果未指定,则将假定为-1(禁用限制)。 |
PASS_WARN_AGE | 数 | 密码过期前给出的警告天数。零表示仅在到期日发出警告,负值表示不发出警告。如果未指定,则不会提供警告。 |
SYS_GID_MAX,SYS_GID_MIN | 数 |
useradd,groupadd或newusers用于创建系统组的组ID范围。 作为默认值SYS_GID_MIN是101 ; 默认值SYS_GID_MAX是GID_MIN减1。 |
SYS_UID_MAX,SYS_UID_MIN | 数 |
useradd或newusers用于创建系统用户的用户ID范围。 作为默认值SYS_UID_MIN是101 ; 默认值SYS_UID_MAX是UID_MIN减1。 |
UID_MAX,UID_MIN | 数 |
useradd或newusers用于创建常规用户的用户ID范围。UID_MIN(分别为UID_MAX) 的默认值为1000(分别为60000)。 |
UMASK | 数 | 该文件模式创建掩码被初始化为这个值。如果未指定,则掩码将初始化为022。useradd和newusers使用此掩码设置他们创建的主目录的模式。pam_umask也将其用作默认的umask值。 |
USERGROUPS_ENAB | 布尔值 | 如果设置为yes,则userdel将删除该用户的组(如果该组中不再包含任何成员),并且useradd将默认创建一个具有用户名的组。 |
/ etc / passwd | 用户帐户信息。 |
/ etc / shadow | 安全的用户帐户信息。 |
/ etc / group | 组帐户信息。 |
/ etc / gshadow | 安全的组帐户信息。 |
/ etc / default / useradd | 创建帐户的默认值。 |
/ etc / skel / | 包含默认文件的目录。 |
/etc/login.defs | 影子密码套件配置。 |
useradd退出时具有以下状态,具体取决于发生的情况:
0 | 一切均已成功完成。 |
1 | 无法更新密码文件。 |
2 | 该命令的语法无效。 |
3 | 给一个或多个选项一个无效的参数。 |
4 | 用户标识已在使用中,并且未指定-o。 |
6 | 指定的组不存在。 |
9 | 用户名已被使用。 |
10 | 无法更新群组档案。 |
12 | 无法创建主目录。 |
14 | 无法更新SE Linux用户映射。 |
查看英文版
useradd 示例
useradd -D
显示新用户的默认值。输出类似于以下内容:
GROUP=1001 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=no
useradd newperson
创建newperson新用户。添加新用户后,您将需要使用passwd命令为该帐户分配密码。
创建用户后,您可以使用usermod命令修改任何用户设置,例如用户的主目录。
为了使这些命令起作用,您必须具有root特权。
查看英文版