useradd

useradd 功能说明:useradd命令可用于创建新的用户或者更改用户的信息。

语法格式:
useradd [选项] [用户名]
useradd -D [选项]

选项说明:
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 comment 新用户password文件中的说明栏(冒号分隔后的第五列)。
-d home_dir 新用户每次登入时所使用的家目录。
-e expire_date 用户终止时间。日期的指定格式为YYYY-MM-DD。
-f inactive_days 用户过期几日后永久停权。当值为0时用户立即被停权,而当值为-1时则关闭此功能,预设值为-1-g initial_group 指定用户对应的用户组。用户组名必须为系统现已存在的名称。
-G group,[...] 定义此用户为多个不同组的成员,每个用户组使用逗号(,)分隔。用户组名同 -g选项的限制。默认值为用户的起始用户组。
-m 用户目录如不存在则自动建立。
-M 不建立用户家目录,优先于/etc/login.defs文件设定。创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户。
-n 默认情况下用户的用户组与用户的名称是相同的。如果命令添加了-n参数,就不会生成与用户同名的用户组了。
-r 此参数是用来建立系统用户的。系统用户的UID会比定义在系统档上/etc/login.defs 的UID_MIN要小。
注意此用法下useradd所建立的用户不会建立用户家目录,也不会在乎记录在/etc/login.def中的定义值。如果需要用户家目录必须额外指定-m参数来建立系统用户。
-s shell 用户登入后使用的Shell名称。默认值为不填写,这样系统会帮助指定预设定的登入Shell(根据/etc/default/useradd预设的值)。
-u uid 用户的UID值。这个值必须是唯一的,除非用-o选项。数字不可为负值。

3.useradd加选项 -D 的参数选项及说明
该参数是修改/etc/default/useradd配置文件的内容
-b default_home 定义用户家目录的基本目录,当用户家目录不存在时,此目录将作为家目录生效。
-e default_expire_date 用户账号停止时间,格式为YYYY-MM-DD,同useradd 的-e参数。
-f default_inactive 用户过期几日后停权。同useradd 的-f参数。
-g default_group 新用户起始用户组名或ID。用户组名必须为现已存在的名称。用户组ID也必须为现已存在的用户组。用useradd的-g参数。
-s default_shell 用户登入后的Shell名称。同useradd -s参数。



案例:不加任何参数添加用户
[root@testdb62 ~]# useradd oracle

说明:
创建用户的同时还会创建一个与用户名相同的用户组。
在/home 目录下自动建立了一个和用户名相同的目录,即用户的家目录。
创建的用户符合/etc/default/useradd和/etc/login.defs两个文件的规则预设的值。
用户家目录下的文件和/etc/skel目录中的一样。

[root@testdb62 ~]# grep -w oracle /etc/passwd
oracle:x:1006:1006::/home/oracle:/bin/bash
[root@testdb62 ~]# ls -ld /home/oracle
drwx------ 2 oracle oracle 62 Dec 21 09:43 /home/oracle
[root@testdb62 ~]# grep -w oracle /etc/shadow
oracle:!!:18617:0:99999:7:::
[root@testdb62 ~]# grep -w oracle /etc/group
oracle:x:1006:
[root@testdb62 ~]# grep -w oracle /etc/gshadow
oracle:!::


案例:useradd 加-s、-u参数添加用户
[root@testdb62 ~]# groupadd -g 1208 scott
[root@testdb62 ~]# useradd -g scott -u 1208 scottuser 
[root@testdb62 ~]# id scottuser
uid=1208(scottuser) gid=1208(scott) groups=1208(scott)


案例:useradd 加-M、-s参数添加用户
[root@testdb62 ~]# useradd -M -s /sbin/nologin wushuang
[root@testdb62 ~]# ls -ld /home/wushuang
ls: cannot access /home/wushuang: No such file or directory
[root@testdb62 ~]# grep -w wushuang /etc/passwd
wushuang:x:1210:1210::/home/wushuang:/sbin/nologin


案例:useradd 加-c、-u、-G、-s、-d、-m、-e、-f 参数添加用户
[root@testdb62 ~]# groupadd sa
[root@testdb62 ~]# useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2030/12/12" -f 2 -d /tmp/syssa syssa

验证创建后的用户
[root@testdb62 ~]# tail -1 /etc/passwd
syssa:x:806:1213:SysUser:/tmp/syssa:/bin/sh
[root@testdb62 ~]# ls -ld /tmp/syssa
drwx------ 2 syssa syssa 62 Dec 21 10:25 /tmp/syssa
[root@testdb62 ~]# id syssa
uid=806(syssa) gid=1213(syssa) groups=1213(syssa),0(root),1212(sa)
[root@testdb62 ~]# chage -l syssa
Last password change                    : Dec 21, 2020
Password expires                    : never
Password inactive                    : never
Account expires                        : Dec 12, 2030
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


范例:useradd -D参数的使用
[root@testdb62 ~]# 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@testdb62 ~]# cp  /etc/default/useradd{,.bak} 
[root@testdb62 ~]# useradd -D -s /bin/sh
[root@testdb62 ~]# diff /etc/default/useradd{,.bak}
6c6
< SHELL=/bin/sh
---
> SHELL=/bin/bash
[root@testdb62 ~]# useradd -D -e "2022/12/12"
[root@testdb62 ~]# diff /etc/default/useradd{,.bak}
5,6c5,6
< EXPIRE=2022/12/12
< SHELL=/bin/sh
---
> EXPIRE=
> SHELL=/bin/bash
[root@testdb62 ~]# useradd zuma
[root@testdb62 ~]# tail -1 /etc/passwd
zuma:x:1211:1214::/home/zuma:/bin/sh
[root@testdb62 ~]# chage -l zuma
Last password change                    : Dec 21, 2020
Password expires                    : never
Password inactive                    : never
Account expires                        : Dec 12, 2022
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




 

posted @ 2018-08-02 21:10  屠魔的少年  阅读(334)  评论(0)    收藏  举报