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.显示的内容信息

Linux(入门基础):75---用户的新增、删除(命令useradd、userdel。/etc/login.defs文件)

  • 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

Linux(入门基础):75---用户的新增、删除(命令useradd、userdel。/etc/login.defs文件)

  • CREATE_MAIL_SPOOL=no

是否建立用户的mailbox(邮箱)。no为不建立,yes为建立

如果为yes,用户的邮箱会建立在/var/spool/mail/目录下(例如建立person用户,person用户邮箱为/var/spool/mail/person)

三、/etc/login.defs文件

1.功能

  • 这个文件的内容是参数,用于新建用户时参考的参数

2.文件的内容

Linux(入门基础):75---用户的新增、删除(命令useradd、userdel。/etc/login.defs文件)

  • 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