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