useradd

增加新用户


语法格式

useradd [-lmMNorU] [-b basedir] [-c comment] [-d homedir] [-e expire]
[-K key=value] [-f inactive] [-g group] [-G g1[,g2,…]]
[-k skeldir] [-s shell] [-u uid] [-Z seuser] login
useradd -D [-b basedir] [-e expire] [-f inactive] [-g group] [-s shell]
useradd [-h|--help]

命令简介

useradd命令用于增加新用户,修改系统的/etc/passwd、/etc/shadow以及/etc/group等用户账号文件。其中,login是新增的用户名。用户名可以使用字母、数字、句点、下画线与连字符等,最多不超过32个字符。

/etc/default/useradd文件提供若干默认的设置,如HOME、GROUP和SHELL等。在增加新用户时,useradd将会使用命令行指定的选项,加上系统提供的默认值,创建一个新的用户账号。

根据命令行选项,以及/etc/login.defs 文件中CREATE_HOME变量的设置,useradd 命令通常会创建新的用户主目录,复制基本的用户初始化文件,按照MAIL_DIR变量的定义创建用户邮箱等。

除非使用“-g”选项指定一个现有的用户组,且指定了“-N”选项,useradd通常会自动创建一个同名的用户组。

必要时,可以使用第二种语法格式的“-D”与其他选项修改上述变量,从而修改系统默认的用户账号设置。

命令选项

-b basedir, --base-dir basedir  如果“-d”选项未指定,使用“-b”选项指定的目录作为用户主目录的起始基点目录。指定的起始目录再加上用户名login即可构成用户主目录(如/home/login)。如果未指定“-m”选项,指定的目录basedir必须存在。如果未指定“-b”选项,useradd命令将使用/etc/default/useradd文件中的HOME变量值作为起始目录。否则使用/home作为起始目录。

-c comment, --comment comment  任何字符串,用于指定用户全名与简要说明等用户账号的注释信息。

-d homedir, --home homedir  指定新增用户的主目录homedir/login。默认的主目录是/home/login。如果指定了“-m”选项,指定的目录homedir不必事先存在。

-D, --defaults  用于修改/etc/default/useradd文件中定义的默认用户账号设置。单独指定“-D”选项,useradd命令将会显示当前已经设定的默认用户账号信息。当与“-b”、“-e”、“-f”、“-g”或“-s”选项一起使用时,useradd命令将会分别修改/etc/default/useradd文件中HOME、EXPIRE、INACTIVE、GROUP与SHELL变量的相应设置。例如,“useradd -D -s /bin/tcsh”命令将会把/etc/default/useradd文件中的SHELL变量修改为/bin/tcsh。

-e expire, --expiredate expire  指定用户账号有效期的截止日期。到期后账号自动失效,用户无法再注册到系统。指定日期时应采用YYYY-MM-DD格式。如果未指定此选项,useradd命令将会使用/etc/default/useradd文件中的EXPIRE变量值(通常为空串,表示没有有效期限制)作为默认值。

-f inactive, --inactive inactive  指定超出密码有效期之后一直不访问系统,但仍保证其账号信息有效的最多天数,超过此限将封锁用户账号。如果指定的数值为0,表示一旦密码有效期到期则立即封锁用户账号。“-1”(负1)表示禁用此特性。如果未指定“-f”选项,useradd命令将会使用/etc/default/useradd文件中的INACTIVE变量值(通常为“-1”,表示直接禁用此特性)作为默认值。

-g group, --gid group  指定新增用户初始注册时使用的用户组名或用户组ID(即主用户组)。指定的用户组名或用户组ID必须存在。如果未指定用户组,然而指定了“-U”选项,或login.defs文件中的USERGROUPS_ENAB变量已设置为yes,useradd将会创建一个与指定用户login同名的用户组。如果上述变量设为no,或指定了“-N”选项,useradd将会按照/etc/default/useradd文件中的GROUP变量值创建新用户的主用户组,否则使用默认值100作为用户组ID。

-G g1[,g2,...], --groups g1[,g2,...]  指定用户从属的一个或多个从用户组。如果用户属于多个用户组,则用户组名之间需加逗号分隔符,且前后不能有任何空白字符。指定用户组时可以使用名字或数字ID。通常,用户仅从属于最初设定的用户组,即主用户组。

-k skeldir, --skel skeldir  指定存储用户初始化文件(如.bash_profile)的目录,使useradd命令能够在创建用户主目录之后,把其中的文件与目录复制到用户主目录中。通常,系统提供一组标准的初始化文件,为用户设置最基本的运行环境。注意,仅当与“-m”选项一起使用时这个选项才有效。如果未指定此选项,可以采用/etc/default/useradd文件中SKEL变量的定义。默认的目录位置为/etc/skel。

-K key=value, --key key=value  采用变量赋值的方式,修改login.defs文件中诸如UID_MIN、UID_MAX、UMASK或PASS_MAX_DAY等变量的默认值。在一个命令行中,可以同时指定多个“-K”选项。

-l, --no-log-init  禁止把新增用户加到/var/log/lastlog和/var/log/faillog日志文件中。通常,用户在lastlog与faillog文件中的记录需要重新设置,以避免重用先前已删用户的记录。

-m, --create-home  如果新建用户的主目录不存在,则创建用户主目录,同时把/etc/skel目录或“-k”选项指定目录中的初始化文件与目录复制到用户主目录中。如果不指定此选项,通常不创建用户主目录,除非login.defs 文件中的CREATE_HOME变量设为yes。

-M  禁止创建用户主目录,即使login.defs文件中的CREATE_HOME变量已设为yes。

-N, --no-user-group  通常,增加新用户时会同时增加一个与用户名同名的用户组。利用这个选项可以禁止创建同名的用户组,把用户加到“-g”选项指定的用户组或/etc/default/ useradd文件中GROUP变量指定的默认用户组(users)中。如果“-g”、“-N”和“-U”选项均未指定,则login.defs文件中的USERGROUPS_ENAB变量定义了默认的处理动作。

-o, --non-unique  与“-u”选项一起使用时,允许新增的用户账号使用重复的用户ID。

-r, --system  创建系统用户账号。创建系统用户账号时不涉及有效期的问题,其用户ID选自login.defs文件中SYS_UID_MIN与SYS_UID_MAX变量定义的范围,同时创建相应的用户组。注意,useradd不会为系统用户创建主目录,不管login.defs文件中的CREATE_HOME变量是否已经设置为yes。如果想为系统用户创建主目录,必须指定“-m”选项。

-s shell, --shell shell  指定新增用户注册Shell的完整路径名,作为用户注册后的命令解释程序。如果未指定Shell,useradd命令将会使用/etc/default/useradd文件中的SHELL变量值(/bin/bash)或空串作为默认的Shell,修改/etc/passwd的Shell字段。

-u uid, --uid uid  指定新增用户的用户ID。除非指定了“-o”选项,用户ID必须是唯一的。根据/etc/login.defs文件中GID_MIN与GID_MAX变量的设置,用户ID是一个大于499或999的正整数(0~499或0~999保留作系统用户账号)。如果未指定用户ID,useradd命令通常会选择当前已经分配的最大ID号加1。例如,如果当前已分配的用户ID为500、505和600,下一个可用的用户ID将是601。

-U, --user-group  创建一个与用户名同名的用户组,把新建用户加到这个用户组中(这是默认的选项)。此外,如果“-g”与“-N”选项均未指定,还要执行login.defs文件中USERGROUPS_ENAB变量定义的处理动作,如设置用户创建文件或目录时采用的掩码等。

-Z seuser, --selinux-user seuser  指定用户的SELinux用户名(与用户名不同)。如果未指定,可由系统选择一个默认的SELinux用户。

-h, --help  显示命令的用法与选项说明等帮助信息,然后退出。

应用实例

1. 增加一个用户。下述命令将会增加一个指定的用户,创建用户主目录,创建同名的用户组,复制默认的初始化文件,以及创建默认的邮箱等。

# useradd test
#

2. 查询当前系统增加新用户的默认设置。

# useradd –D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/tcsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
#

3. 使用指定的用户ID和Shell,增加一个用户。

# useradd –u 2000 –s /bin/tcsh test3
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z