Linux(入门基础):75---用户的新增、删除(命令useradd、userdel。/etc/login.defs文件)
前言
- useradd建立好一个账号后,在默认情况下该账号是暂时锁定的,该账号也无法登录,因为没有设置密码,/etc/passwd第二栏显示!!
- 因此使用useradd命令新建一个账号之后,需要使用passwd去设置密码才可以使该账号生效
- 本片文章只介绍useradd,passwd请点击==>https://blog.****.net/qq_41453285/article/details/88142379
一、useradd命令
1.功能
- 新增用户
2.命令格式
- useradd [选项] 用户名
相关选项与参数
- -u:后面接数字,代表该用户的UID0
- -g:后面接初始用户组名,一般与用户名相同,该用户组的GID会被放到/etc/passwd的第四栏
- -G:后面接次要用户组名,就是除了初始用户组,该用户还加入了哪些其他用户组中
- -M:不要建立用户的家目录(建立系统账号时的默认值)
- -m:建立用户的家目录(建立一般用户时的默认值)
- -c:用户说明内容,就是/etc/passwd第五栏显示的内容
- -d:后面接目录名(务必使用绝对路径),指定该目录为用户的家目录,而不使用系统提供的默认家目录
- -r:建立一个系统用户
- -s:后面接一个shell,代表该用户使用的shell,如果没有使用默认shell
- -e:后面接该用户账号的失效日期,就是/etc/shadow第八栏的日期。格式为【YYYY-MM-DD】
- -f:后面接shadow第七栏的选项,指定密码过期是否会失效。0为立刻失效,-1位永远不失效(但是过期之后登录时系统会提示重新社设置密码)
3.演示案例
- 案例一:创建一个person用户,指定UID为1500,初始用户组为users(提前是系统中1500这个UID不存在,users用户组必须存在)
useradd -u 1500 -g users person
- 案例二:建立一个系统账号(personRoot),因为是系统账号,所以需要加上-r选项,系统账号的UID会小于1000,并且默认不会创建家目录
useradd -r personRoot
4.注意事项
useradd已经帮我们设置好了很多默认选项,这些默认选项已经很好用了,我们没有特殊要求时使用默认选项就可以了,默认选项所处理的内容有以下内容
- 在/etc/passwd建立一行新用户,包括UID/GID/家目录等
- 在/etc/shadow里面将此账号的密码相关参数写入,但是尚未设置密码,第二栏数据会显示!!(所以该账号建立好之后是锁定的,需要使用passwd命令设置密码才可以使用)
- 在/etc/group里面新增一个用户组,用户组名与用户组名一模一样
- 如果是建立一般用户,在/home/目录下建立一个家目录,权限默认为700。如果是建立系统账号则不会建立
二、useradd命令的默认参数值
1.useradd -D命令
- 当我们使用useradd命令建立一个用户时,用户会有默认的家目录、默认的shell等,这些默认值可以通过useradd -D查看
2.显示的内容信息
- GROUP=100
公有用户组机制下,新建用户时指定的默认用户组,此处为GID值(在系统中GID=100的是users这个用户组)
如果不是公有用户组机制的系统,不会使用这个参数
私有用户组机制 在这个机制下,系统新建账号时,会赋予用户一个同名的用户组,这样比较有保密性,并且家目录权限为700(仅可自己进入自己的家目录)。
代表性的系统有:REHL、Fedora、CentOS等
公有用户组机制 在这个机制下,就是以GROUP=100将users用户组赋予给新建的账号,因此每个用户都属于users这个用户组,且家目录默认的权限为【rwxr-xr-x】每个账号都可以互相共享家目录内的数据
代表性的系统有:SUSE等
- HOME=/home
默认的家目录所在目录,例如建立一个person用户,则person的家目录为/home/person/
- INACTIVE=-1
密码过期后的宽限期,/etc/shadow第七栏对应的内容.
-1代表密码过期后永不失效(但是登录时系统会让你强制重新修改密码)
0代表面密码过期后立即失效
一般数字:例如30天就代表宽限期为过期后30天
- EXPIRE=
账号失效日,/etc/shadow第八栏的内容,一般不设置,在收费系统会有设置
- SHELL=/bin/sh
创建用户时赋予的默认使用的shell
- SKEL=/etc/skel
如果建立用户的家目录,SKEL代表这些用户的家目录参考基准目录
例如:我们建立一个用户时,这个用户家目录下会有很多原始数据与文件,这些原始数据与文件就是和这个/etc/skel/目录下的(.bashrc为配置文件等..)。如果我们在/etc/skel/下建立一个1.txt。那么当我们新建一个用户时,这个用户的家目录下也会有1.txt
- CREATE_MAIL_SPOOL=no
是否建立用户的mailbox(邮箱)。no为不建立,yes为建立
如果为yes,用户的邮箱会建立在/var/spool/mail/目录下(例如建立person用户,person用户邮箱为/var/spool/mail/person)
三、/etc/login.defs文件
1.功能
- 这个文件的内容是参数,用于新建用户时参考的参数
2.文件的内容
- MAIL_DIR:使用者默认邮箱放置目录
- UMASK:用户家目录建立时的umask
- PASS_MAX_DAYS:多久需要再次修改密码(/etc/passwd第五栏的内容)
- PASS_MIN_DAYS:多久不可设置密码(/etc/passwd第四栏的内容)
- PASS_WARN_AGE :密码过期之前会发出警告的天数(/etc/passwd第六栏的内容)
- UID_MIN:新建一般账号时,可以赋予给一般账号的UID的最低限制(不能低于这个号码)
- UID_MAX:新建一般账号时,可以赋予给一般账号的UID的最高限制(不能高于这个号码)
- GID_MIN::新建一般账号时,可以赋予给一般账号的用户组的GID的最低限制(不能低于这个号码)
- GID_MAX:新建一般账号时,可以赋予给一般账号的用户组的GID的最高限制(不能高于这个号码)
- USERGROUPS_ENAB:使用userdel删除用户时,是否会删除初始用户组(前提是该用户组内没有其他用户了)
- ENCRYPT_METHOD:密码加密机制使用的加密方法
还有一些没有的,以下作为补充
- SYS_UID_MIN:新建系统账号时,可以赋予给系统账号的UID的最低限制(不能低于这个号码)
- SYS_UID_MAX:新建系统账号时,可以赋予给系统账号的UID的最高限制(不能高于这个号码)
- SYS_GID_MIN:新建系统账号时,可以赋予给系统账号的用户组的GID的最低限制(不能低于这个号码)
- SYS_GID_MAX:新建系统账号时,可以赋予给系统账号的用户组的GID的最高限制(不能高于这个号码)
- CREATE_HOME:在useradd命令不加-M或-m选项时,是否主动建立使用者的家目录
- PASS_MIN_LEN:密码最短的字符长度,已经被pam模板替换,已经医用该参数了
四、UID/GID指定值
1.一般用户UID设定值:当我们去新建一个一般用户时,如果不指定这个用户的UID,系统会默认赋予给该用户一个UID,那么这个UID默认值是怎么设定的哪?
- 第一步:参考/etc/login.defs文件中的UID_MIN与UID_MAX,了解到系统新建一个一般用户时,ID值的设置值会有哪些限制
- 第二步:参考/etc/passwd文件中已经存在的用户UID,并且找出最大的那个UID,然后将UID+1作为新用户的UID值(例如:/etc/passwd中当前最大的UID为1500,则这个新建用户的UID就为1501)
2.系统账号的UID、一般用户、系统账号的GID都是上面的相同原理
五、userdel命令
1.功能
- 删除用户、并且删除用户的数据
2.命令格式
- userdel [-r] 用户名
相关参数与选项
- -r:连同使用者的家目录也一同删除
3.注意事项
- ①userdel命令会删除/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件的内容。但是用户在系统内可能还含有其他文件(例如邮箱或是计划任务等),所以如果想要将某个账号完整的删除,最好在执行userdel -r 用户名之前,先用find / -user 用户名查找出系统内属于该用户的文件,并一起删除
- ②通常我们删除一个用户,可以手动将/etc/passwd与/etc/shadow里面的账号取消,想要时再建立用户即可,该用户的相关数据都会保留下来
- ③如果只是让用户【暂时不启用】的话,可以将/etc/shadow第8栏设置为0就可以了,那么该用户的相关数据都会保留下来
4.演示案例
- 删除dongshao用户,连同家目也删除
userdel -r dongshao