useradd指令

useradd创建用户。创建用户时的一些默认选项存放在/etc/default/useradd和/etc/login.defs文件中。

/etc/default/userasdd文件的内容如下:

[root@Server3 tmp]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@Server3 tmp]#

语法格式:useradd [options] LOGIN

选项说明:

-u UID:指定UID,默认的UID为/etc/passwd文件中最后的一个UID的下一个作为新用户的UID。

-g GID:指定GID,组必须事先要存在。这里指定的是基本组。如果/etc/login.defs里面的USERGROUPS_ENAB变量设置为yes或者是使用了-U或--user-group选项的话,则会创建一个和用户名相同的组。如果USERGROUP_ENAB选项设置为no或使用了-N或--no-user-group选项的话,则新创建的用户的基本组为/etc/default/useradd中GROUP变量所定义的GID。

示例:

[root@Server3 tmp]# useradd -N user3
[root@Server3 tmp]# grep user3 /etc/passwd
user3:x:505:100::/home/user3:/bin/bash
[root@Server3 tmp]# grep 100 /etc/group
users:x:100:
[root@Server3 tmp]#

-G GID,...:指定一个或多个附属组,可以有多个。

-c "comment":指定注释信息,存放在/etc/passwd的第五个字段。

-d directory:指定用户的家目录。默认为/home/目录下。

-s:指定用户的shell。默认为/bin/bash,该shell必须存在于/etc/shells文件中。

    示例:

[root@Server3 tmp]# useradd -s /sbin/nologin user1
[root@Server3 tmp]# su - user1
This account is currently not available.
[root@Server3 tmp]#

-m:如果用户的家目录不存在,则创建用户的家目录。并且在/etc/skel目录下的所有文件都会被拷贝到用户的家目录下。通常该选项会和-k选项一起使用。

-M:不创建用户的家目录。

-b:base_dir,指定创建用户时,用户家目录默认放置的最上层目录,默认为/home,也就是/etc/default/useradd中HOME变量所定义的目录就是基目录。

-e:指定账户过期时间。格式为YYYY-MM-DD,该选项对应于/etc/default/useradd中的EXPIRE变量。

示例:

[root@Server3 tmp]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=2014-7-2
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@Server3 tmp]# 
[root@Server3 tmp]# useradd user2

[root@Server3 tmp]# chage -l user2
Last password change                                    : Jul 01, 2014
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jul 02, 2014
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
[root@Server3 tmp]#

-f:指定密码过期多少天后账户将会永久性关闭。如果为0,则表示立即关闭,如果是-1则表示关闭这个特性。该选项对应与/etc/default/useradd中的INACTIVE变量。

示例:

[root@Server3 tmp]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=5
EXPIRE=2014-7-2
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@Server3 tmp]# useradd user1
[root@Server3 tmp]# grep 'user1' /etc/passwd
user1:x:503:503::/home/user1:/bin/bash
[root@Server3 tmp]# grep 'user1' /etc/shadow
user1:!!:16252:0:99999:7:5:16253:
[root@Server3 tmp]#


-r:创建一个系统用户。