说明

  useradd命令用于创建新的用户或更改用户的信息

格式

  useradd [option] [username]

常用选项说明

1、使用useradd添加用户的流程
  在使用useradd命令是,如果不加任何参数,后面直接跟所添加的用户名,那么系统首先会读取/etc/login.defs(用户定义文件)和/etc/default/useradd(用户默认配置文件)文件中所定义的的参数和规则,然后根据所设置的规则添加用户,同时还会向/etc/passwd(用户文件)和/etc/group(组文件)文件内添加新的用户和用户组信息,向/etc/shadow(用户密码文件)和/etc/gshadow(组密码文件)文件里添加用户和组对应的密码信息。同时系统还会根据/etc/default/useradd文件所配置的信息建立用户的家目录,并将/etc/skel中的所有文件(包括隐藏的环境配置文件)都复制到新的家目录中。

2、useradd不加选项-D的参数选项说明

  • -c:新用户passwd文件中的说明
  • -d:用户每次登录的家目录
  • -e:用户的过期时间 YYYY-MM-DD
  • -f:用户过期几天后永久停权。0:立即停权,-1:关闭此功能
  • -g:用户对应的用户组
  • -G:定义该用户为多个不同组的成员,多个组用逗号隔开
  • -m:用户家目录不存在就自动建立
  • -M:不建立用户的家目录,一般虚拟用户就不需要创建家目录
  • -n:一般情况下用户和用户组的名称相同,如果使用了-n选项,就不会生成相同的用户和用户组
  • -s:用户登入后使用的shell名称
  • -u:用户的UID,这个是一个唯一值

3、useradd加-D参数,改变新建用户的预设值(这个不说明,一般不这样用)

1、不加任何参数
[root@localhost skip]# useradd user_new #添加用户
[root@localhost skip]# ll -d /home/user_new/ #在home目录下创建了家目录
drwx------. 2 user_new user_new 59 May  8 01:26 /home/user_new/
[root@localhost skip]# tail -1 /etc/passwd #用户信息
user_new:x:1003:1003::/home/user_new:/bin/bash
[root@localhost skip]# tail -1 /etc/group #用户组信息
user_new:x:1003:
[root@localhost skip]# tail -1 /etc/shadow #用户密码文件新增信息
user_new:!!:17659:0:99999:7:::
[root@localhost skip]# tail -1 /etc/gshadow #用户组密码文件新增信息
user_new:!::

2、-g和-u参数的使用
[root@localhost skip]# tail -2 /etc/group #查看系统中最近添加的两个用户组
skip:x:1002:
user_new:x:1003:
[root@localhost skip]# useradd -g 1002 -u 1114 user_new2 #指定用户组id和用户的uid
[root@localhost skip]# ll -d /home/user_new2/
drwx------. 2 user_new2 skip 59 May  8 01:30 /home/user_new2/
[root@localhost skip]# tail -1 /etc/passwd #查看用户信息
user_new2:x:1114:1002::/home/user_new2:/bin/bash
[root@localhost skip]# tail -1 /etc/group #查看用户组信息,没有新增
user_new:x:1003:
[root@localhost skip]# tail -1 /etc/gshadow #查看组密码信息,没有新增
user_new:!::
[root@localhost skip]# tail -1 /etc/shadow #查看用户密码信息,有新增
user_new2:!!:17659:0:99999:7:::


3、-c、-u、-G、-s、-m、-e、-f等多个参数同时使用
[root@localhost skip]# useradd -c SysUser -u 9991 -s /bin/sh -G root,skip -e "2018-5-12" -f 2 -d /home/user_new3 user_new3
[root@localhost skip]# tail -1 /etc/passwd
user_new3:x:9991:9991:SysUser:/home/user_new3:/bin/sh
/etc/passwd文件格式说明
user_new3:x:9991:9991:SysUser:/home/user_new3:/bin/sh
说明如下:
user_new3:用户名
x:账号密码
9991:账号的UID
9991:账号组GID
SysUser:用户说明
/home/user_new3:用户的家目录
/bin/sh:用户默认shell解析器