网站地图

linux useradd 命令详解

创建时间:2013-11-26 15:05:15最后修改:2013-11-29 20:11:46

用途:

用于创建一个LINUX新用户或修改默认的新用户配置信息。

语法:

useradd [参数] 账号   #创建新用户

useradd -D                  #查看新用户的默认配置

useradd -D [参数]       #修改新用户的默认配置

说明:

执行useradd命令时如果没有使用-D参数,那么这条命令的作用是根据命令行里指定的参数加上系统默认的一些选项来创建一个新的LINUX账号,useradd执行成功后是会写入系统用户文件的,根据指今还可能会为这个新用户创建一个家目录,默认情况下一个和用户名同名的用户组也会被创建。

参数:

参数说明
-b--base-dir  BASE_DIR
用户目录的创建位置,即用户目录的上一级目录。当使用-d选项后此参数无效。
如果没有指定-b选择,系统会默认使用环境变量HOME作为该选项的值。
-c--comment
对账号一段描述性的文字。
-d--home HOME_DIR
用户的家目录。
用户登录后默认在这个目录,如果没有指定该-d选项,系统默认会在BASE_DIR内以用户名创建一个目录作为HOME_DIR。
-D--defaults
关于该参数的详细说明,请参后面的“修改默认配置”相关说明。
-e--expiredate EXPIRE_DATE
用户的禁用时间,到了该时间以后,用户账号将自动被禁用。
这个时间值的格式为:YYYY-MM-DD
如果没有指定-e参数来限制用户的过期时间,那么系统会默认的读取/etc/default/useradd这个配置文件中的EXPIRE项参数值来作为默认的过期时间值,如果这个值是空的,那么账号将永不过期。
-f--inactive INACTIVE
设置一个天数,指定账号的密码过期几天后该账号会被停权。
如果设置的值是0,表明账号在密码过期后立即停止使用。
如果设置的值是-1,表明密码过期后也不会停止使用账号。
如果没有指定该选项,系统默认会跑到/etc/default/useradd配置文件中去找INACTIVE配置项,使用它的值,如果此配置文件中也没有指定INACTIVE配置项的话,系统就会使用-1作为 INACTIVE 的值了。
-g--gid GROUP
给用户指定一个用户组。
如果使用了-g选项,那么所使用的组名就必须存在。
如果不使用-g选择,系统会跑到配置文件/etc/login.defs中去找USERGROUPS_ENAB配置项,如果该配置的值被设置成yes(或者在命令行中使用了-U/--user-group),系统会创建一个组,取用户名作为用户组的组名。如果USERGROUPS_ENAB的值被设置成了no(或者在命令行中使用了-N/--no-user-group)系统会在配置/etc/default/useradd中取GROUP配置的值作为用户组,如果GROUP值是空的,系统会默认使用100作为用户组的值。
-G--groups GROUP1[,GROUP2,...[,GROUPN]]]
给用户指定多个用户组(每个用户组用,隔开,不能使用空格)
-h--help
显示useradd命令的帮助信息。
-k--skel SKEL_DIR
当用户目录创建成功之后,会将SKEL_DIR里的文件全部复制到用户目录中去。
如查没有指定该选择,系统会跑到配置文件/etc/default/useradd中去找SKEL配置,如果该配置为空,系统会默认使用“/etc/skel”作为该选项的值。
-K--key KEY=VALUE
该选项用于覆盖指定/etc/login.defs中的配置(例如UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS等等)
例子:
当创建一个系统账号的时候使用-K PASS_MAX_DAYS=-1可以关闭密码.
也可以同时指定多个值,如:-K UID_MIN=100 -K UID_MAX=499(注意不能使用,将多个值隔开,如:-K UID_MIN=10,UID_MAX=499是不行的)
-l--no-log-init
用户的登录不记录日志。
-m--create-home
给用户创建一个用户目录(/etc/login.defs文件中的CREATE_HOME设置成no除外)。
-M不建立用户目录
-N--no-user-group
不创建一个与用户同名的用户组,但是如果使用了-g选项(或者在/etc/default/useradd文件中配置了GROUP)将会将用户添加到该用户组中。
默认情况下(当 -g, -N, and -U选项都没有指定的时候)系统会在配置文件/etc/login.defs中搜索USERGROUPS_ENAB值。
-o--non-unique
允许使用重复的UID
-p--password PASSWORD
给用户指定一个密码。
注意:基于安全原因,一般不推荐使用该选项直接为用户指定密码,因为直接在命令行中显露了密码,可以通过history等途径查看到)。
-r--system
创建一个系统用户。
系统用户的UID是从SYS_UID_MIN-SYS_UID_MAX中间的一个随机数,SYS_UID_MIN-SYS_UID_MAX被定义在/etc/login.defs中。
系统用户不会自动创建用户目录(就算你在/etc/login.defs中指定了CREATE_HOME也不会创建),如果一定要为系统用户创建目录,那么就只能通过-m来指定。
-s--shell SHELL
定义用户使用的SHELL。
-u--uid UID
为用户指定一个UID,这个UID是一个唯一的数字(如果用了-o选项可以不唯一)。
-U--user-group
创建一个与用户名一样的名称的用户组,交将该用户添加到用户组中。
-Z--selinux-user SEUSER
The SELinux user for the user¡äs login. The default is to leave this field blank, which causes the system to select the default SELinux user.


修改默认值:

当运行useradd命令只使用了-D选项时(useradd -D),useradd会显示当前的默认值:

[root@AY1311102307557464caZ home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

当useradd使用-D选项和其它选项一起使用的时候,useradd会修改所指定选项的值,例如使用“useradd -D -b /home_test/”会改变/etc/default/useradd中HOME项的值。一些可以修改的选项如下:

参数说明
-b--base-dir BASE_DIR
用户目录的上级目录,对应/etc/default/useradd中的HOME
-e--expiredate EXPIRE_DATE
用户的过期时间,对应/etc/default/useradd中的EXPIRE
-f--inactive INACTIVE
密码过期后用户账号禁用的时间,对应/etc/default/useradd中的INACTIVE
-g--gid GROUP
用户的组名或gid,对应/etc/default/useradd中的GROUP
-s,--shell SHELL
指定用户的shell,对应/etc/default/useradd中的SHELL


useradd命令的使用方法请见:linux创建用户