登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。用户名并无实际作用,仅是为了方便用户的记忆而已。
要论证 “Linux系统不认识用户名” 也很简单,在前面章节,我们曾经在网络上下载过 “.tar.gz” 或 “.tar.bz2” 格式的文件,在解压缩之后的文件中,你会发现文件拥有者的属性显示的是一串数字,这很正常,就是因为系统只认识代表你身份的 ID,这串数字就是用户的 ID(UID)号。
Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应
既然 Linux 系统不认识用户名,文件是如何判别它的拥有者名称和群组名称的呢?每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。
测试可以在 Linux 系统中,添加一个账户, zk 普通账户,我们先使用 root 账号登陆并 Vim /etc/passwd,在该文件中找到 zk 账户并将其 UID 随意改一个数字,这时当你查看普通账户拥有的文件时,你会发现所有文件的拥有者不再是zk ,而是数字。
#查看系统中是否存在zk这个用户
[root@CncLucZK ~]$ grep zk /etc/passwd
zk:x:1002:1002:commons user:/home/zk:/bin/bash
[root@CncLucZK ~]$ ll -d /home/zk
drwx------ 2 zk zk 4096 Oct 15 23:05 /home/zk
#修改zk账户中的UID(第一个 1002)为 1010
[root@CncLucZK test]# vi /etc/passwd
....
zk:x:1010:1002:commons user:/home/zk:/bin/bash
u-dev1:x:1003:1003:devloper user:/home/u-dev1:/bin/bash
u-dev2:x:1004:1004::/home/u-dev2:/bin/bash
u1-test:x:1005:1006::/home/u1-test:/bin/bash
:wq
[root@CncLucZK test]# grep zk /etc/passwd
zk:x:1010:1002:commons user:/home/zk:/bin/bash
#可以看到,之前的 zk 变为了 1010,因为修改了UID,导致 1002 找不到对应的账号,因此显示数字
[root@CncLucZK test]# ll -d /home/zk
drwx------ 2 1002 zk 4096 Oct 16 10:24 /home/zk
#记得最后将其再手动改正过来
#修改zkt账户中的UID从1010 改为 1002
注意,此次为了说明 ID 和用户名的对应关系,所以才将 /etc/passwd 文件中用户的 UID 做了更改。此操作很可能会导致某些程序无法进行,因此 /etc/passwd 文件不能随意修改。
用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group,/etc/gshadow等。
[root@CncLucZK /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
...
/etc/passwd 文件中的内容非常规律,每行记录对应一个用户。里面的这些这些默认用户中的绝大多数是系统或服务正常运行所必需的用户,这种用户通常称为系统用户或伪用户。系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
用户名,就是一串代表用户账号的字符串。Linux 系统是通过 UID 来识别用户身份,分配用户权限的。/etc/passwd 文件中就定义了用户名和 UID 之间的对应关系。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
密码:“x” 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中。
在早期的 UNIX 中,这里保存的就是真正的加密密码串,但由于所有程序都能读取此文件,非常容易造成用户数据被窃取。虽然密码是加密的,但是采用暴力破解的方式也是能够进行破解的。因此,现在 Linux 系统把真正的加密密码串放置在 /etc/shadow 文件中,此文件只有 root 用户可以浏览和操作,这样就最大限度地保证了密码的安全。
需要注意的是,虽然 “x” 并不表示真正的密码,但也不能删除,如果删除了 “x”,那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以的),除非特殊情况(如破解用户密码),这当然是不可行的。
| UID 范围 | 用户身份 |
|---|---|
| 0 | 超级用户。UID 为 0 就代表这个账号是管理员账号。在 Linux 中,如何把普通用户升级成管理员呢?只需把其他用户的 UID 修改为 0 就可以了,这一点和 Windows 是不同的。不过不建议建立多个管理员账号。 |
| 1~499 | 系统用户(伪用户)。也就是说,此范围的 UID 保留给系统使用。其中,1~99 用于系统自行创建的账号;100~499 分配给有系统账号需求的用户。 其实,除了 0 之外,其他的 UID 并无不同,这里只是默认 500 以下的数字给系统作为保留账户,只是一个公认的习惯而已。 |
| 500~65535 | 普通用户。通常这些 UID 已经足够用户使用了。但不够用也没关系,2.6.x 内核之后的 Linux 系统已经可以支持 2的32次幂个 UID 了。 |
初始组,指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组。比如说,我们手工添加用户 zk,在建立用户 zk的同时,就会建立 zk组作为 zk用户的初始组。
附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。
举例来说,刚刚的 zk用户除属于初始组 zk外,我又把它加入了 users 组,那么 zk 用户同时属于 zk 组和 users 组,其中 zk 是初始组,users 是附加组。
当然,初始组和附加组的身份是可以修改的,但是我们在工作中不修改初始组,只修改附加组,因为修改了初始组有时会让管理员逻辑混乱。
需要注意的是,在 /etc/passwd 文件的第四个字段中看到的 ID 是这个用户的初始组。
描述性信息:记录着用户的一些个人情况。例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。。
主目录:也就是用户登录后有操作权限的访问目录,通常称为用户的主目录。它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。例如,root 超级管理员账户的主目录为 /root,普通用户的主目录为 /home/yourIDname,即在 /home/ 目录下建立和用户名相同的目录作为主目录,如 zk用户的主目录就是 /home/zk/ 目录。
Shell 就是 Linux 的命令解释器,是用户和 Linux 内核之间沟通的桥梁。我们知道,用户登陆 Linux 系统后,要启动一个进程,通过使用 Linux 命令完成操作任务,但系统只认识类似 0101 的机器语言,这里就需要使用命令解释器。也就是说,Shell 命令解释器的功能就是将用户输入的命令转换成系统可以识别的机器语言。通常情况下,Linux 系统默认使用的命令解释器是 bash(/bin/bash),当然还有其他命令解释器,例如 sh、csh 等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/bash。
用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。
利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。
在 /etc/passwd 文件中,大家可以把这个字段理解为用户登录之后所拥有的权限。如果这里使用的是 bash 命令解释器,就代表这个用户拥有权限范围内的所有权限。例如:
[root@CncLucZK /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
我手工添加了 zk用户,它使用的是 bash 命令解释器,那么这个用户就可以使用普通用户的所有权限。如果我把 zk 用户的 Shell 命令解释器修改为 /sbin/nologin,那么,这个用户就不能登录了,例如:
[root@CncLucZK /]# cat /etc/passwd
zk:x:1:1:zk:/zk:/sbin/nologin
因为 /sbin/nologin 就是禁止登录的 Shell。同样,如果我在这里放入的系统命令,如 /usr/bin/passwd,例如:
[root@localhost ~]#vi /etc/passwd
zk:x:502:502::/home/zk:/usr/bin/passwd
那么这个用户可以登录,但登录之后就只能修改自己的密码。但是,这里不能随便写入和登陆没有关系的命令(如 ls),系统不会识别这些命令,同时也就意味着这个用户不能登录。
伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用
除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron, mail, usenet等,它们也都各自为相关的进程和文件所需要。
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的加密后的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文中,这个加密是不可逆的。/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。
我们先打开看看,执行如下命令:
[root@CncLucZK user]# tail -15 /etc/shadow
sshd:!!:19281:0:99999:7:::
chrony:!!:19281:0:99999:7:::
tcpdump:!!:19281:0:99999:7:::
syslog:!!:19281:0:99999:7:::
apache:!!:19281:0:99999:7:::
admin:!!:19281:0:99999:7:::
mysql:!!:19281:0:99999:7:::
www:!!:19281:0:99999:7:::
zk:$6$fZvVQI1TTGM...hwnI6PQ...o0:19281:0:99999:7:::
u-dev1:$6$oMEWHX...PiCrdzqmDs5...ANOpr80lr1:19281:0:99999:7:::
u-dev2:$6$awr1Osgjnp...qLEJIHp5...hX1jmp0tOD./:19281:0:99999:7:::
u1-test:$6$Co7irpRjaE...9Nqg8N...NrXM1:19281:0:99999:7:::
ou1:!!:19281:0:99999:7:::
user01:$6$eFL/r/bBy....8JdjOHZz...WGrBv21:19281:0:99999:7:::
user02:$6$YftLR/Ot$INIIid...../vCKag...1qMEep6.:19281:0:99999:7:::
...
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
用户名:同 /etc/passwd 文件的登录名相一致的用户账号。
加密密码:这里保存的是真正加密的密码,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 “!”、“*” 或 “x” 使密码暂时失效。
所有伪用户的密码都是 “!!” 或 “*”,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。
[root@CncLucZK /]# date -d '1970-01-01 18607 days'
Fri Dec 11 00:00:00 CST 2020
最小修改时间间隔:也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,指的是两次修改口令之间所需的最小天数。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。此字段是为了针对某些人频繁更改账户密码而设计的。
密码有效期:经常变更密码是有必要的,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)指的是口令保持有效的最大天数,否则该账户密码进行过期阶段。该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。
密码需要变更前的警告天数:与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户到用户密码正式失效之间的天数。该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 “修改密码” 的警告信息。
密码过期后的宽限天数:也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
账号失效时间:同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,期满后,该账号就不再是一个合法的账号,也就不能再用来登录了!该字段通常被使用在具有收费服务的系统中。
保留:这个字段目前没有使用,等待新功能的加入。
忘记密码怎么办:经常有用户会忘记自己的账户密码,该怎么处理呢?
对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)
如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。
init=/bin/sh;最后按住Ctrl+x执行就可以进入单用户模式。1.首先开机进入初始界面

2.在进入该页面之后要按e进入编辑页面 ,在编辑页面中按↓向下寻找,找到下图标红处,在标红处添加 init=/bin/sh

3.输入后,按下ctrl+x进入单用户模式,在该模式下位root用户权限,但是不需要密码登录,在此模式下,我们可以用passwd root命令修改root用户密码 ,完成之后我们输入exec /sbin/init 回车后便可退出单用户模式,进入系统设定的模式。

4.按修改好的root密码进行登陆即可。

[root@CncLucZK ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
...
www:x:1001:
zk:x:1002:u-dev2
u-dev1:x:1003:
u-dev2:x:1004:
u-dev3:x:1005:u-dev2
group1-test:x:1006:
group2-test:x:1007:u1-test
group3-test:x:1008:u1-test
ou1:x:1009:
tgroup:x:1010:u-dev1
tgroup2:x:1011:
可以看到,此文件中每一行各代表一个用户组。创建用户时系统默认生成一个用户组作为用户的初始组。各用户组中,还是以 “:” 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:
组名:密码:GID:该用户组中的用户列表
组名:是用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。
组密码和 /etc/passwd 文件一样,这里的 “x” 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。不过,用户设置密码是为了验证用户的身份,那用户组设置密码主要是用来指定组管理员的,由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代 root 进行管理。但是这项功能目前很少使用,我们也很少设置组密码。即这个字段一般为空,或者是。如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。
组ID (GID):群组的 ID 号,是一个整数。Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应,实际上,/etc/passwd 文件中使用 GID 对应的群组名,就是通过此文件对应得到的。
组内用户列表:此字段列出每个群组包含的所有用户,不同用户之间用逗号(,)分隔。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。若:zk组的组信息为 zk:x:612:,可以看到,第四个字段没有写入 zk用户,因为 zk 组是 zk用户的初始组。如果要查询这些用户的初始组,则需要先到 /etc/passwd 文件中查看 GID(第四个字段),然后到 /etc/group 文件中比对组名。每个用户都可以加入多个附加组,但是只能属于一个初始组。所以我们在实际工作中,如果需要把用户加入其他组,则需要以附加组的形式添加。例如,我们想让 zk也加入 root 这个群组,那么只需要在第一行的最后一个字段加入 zk,即 root:x:0:zk就可以了。一般情况下,用户的初始组就是在建立用户的同时建立的和用户名相同的组。
/etc/passwd、/etc/shadow、/etc/group,它们之间的关系,先在 /etc/group 文件中查询用户组的 GID 和组名;然后在 /etc/passwd 文件中查找该 GID 是哪个用户的初始组,同时提取这个用户的用户名和 UID;最后通过 UID 到 /etc/shadow 文件中提取和这个用户相匹配的密码。
/etc/passwd 文件存储用户基本信息,同时考虑到账户的安全性,将用户的密码信息存放另一个文件 /etc/shadow 中。本节要将的 /etc/gshadow 文件也是如此,组用户信息存储在 /etc/group 文件中,而将组用户的密码信息存储在 /etc/gshadow 文件中。
先查看一下此文件中的内容
[root@CncLucZK ~]# tail -15 /etc/gshadow
root:::
bin:::
daemon:::
...
syslog:!::
apache:!::
admin:!::
mysql:!::
www:!::
zk:!::u-dev2
u-dev1:!::
u-dev2:!::
u-dev3:$6$...gKd9qXiaSB6MPXaWaG0:zk:u-dev2
group1-test:!::
group2-test:!::u1-test
group3-test:!::u1-test
ou1:!::
tgroup:!::u-dev1
tgroup2:!::
组名:加密密码:组管理员:组附加用户列表
useradd 和 groupadd 分别是添加用户和群组的命令
[root@CncLucZK ~]# useradd zk #添加新用户
[root@CncLucZK ~]# grep 'users' /etc/group #查看有没有这个users组,发现系统初始建立了users用户组,但是没有附加用户
users:x:100:
[root@CncLucZK ~]# groupadd users #若/etc/group文件中没有users用户组则添加新群组
[root@CncLucZK ~]# usermod -G users zk #将用户zk加入 users群组
[root@CncLucZK ~]# grep 'zk' /etc/passwd
zk:x:1002:1002::/home/zk:/bin/bash
[root@CncLucZK ~]# grep 'zk' /etc/group
users:x:100:zk
zk:x:1002:
[root@CncLucZK ~]# grep 'zk' /etc/shadow
zk:!!:19279:0:99999:7:::
[root@CncLucZK ~]# grep 'zk' /etc/passwd /etc/group /etc/shadow /etc/gshadow
/etc/passwd:zk:x:1002:1002::/home/zk:/bin/bash
/etc/group:users:x:100:zk
/etc/group:zk:x:1002:
/etc/shadow:zk:!!:19279:0:99999:7:::
/etc/gshadow:users:::zk
/etc/gshadow:zk:!::
可以看到,在 etc/passwd 文件中,zk用户所属的 GID(群组 ID)为 1002,通过搜索 /etc/group 文件得知,对应此 GID 的是 zk群组,也就是说,zk群组是 zk用户的初始组。zk 群组是添加 zk用户时默认创建的群组,在 root 管理员使用 useradd 命令创建新用户时,若未明确指定该命令所属的初始组,useradd 命令会默认创建一个同用户名相同的群组,作为该用户的初始组。正因为 zk群组是 zk用户的初始组,该用户一登陆就会自动获取相应权限,因此不需要在 /etc/group 的第 4 个字段额外标注。但是,附加组就不一样了,从例子中可以看到,我们将 zk用户加入 users 群组中,由于 users 这个群组并不是 zk 的初始组,因此必须要在 /etc/group 这个文件中找到 users 那一行,将 zk 这个用户加入第 4 段中(群组包含的所有用户),这样 zk用户才算是真正加入到 users 这个群组中。在这个例子中,因为 zk用户同时属于 zk和users 两个群组,所在,在读取\写入\运行文件时,只要是 user 和 zk 群组拥有的功能,zk 用户都拥有。
一个用户可以所属多个附加组,但只能有一个初始组。那么,如何知道某用户所属哪些群组呢?使用 groups 命令即可。
例如,我们现在以 zk用户的身份登录系统,通过执行如下命令即可知晓当前用户所属的全部群组:
[root@CncLucZK /]# su - zk
[zk@CncLucZK ~]$ groups
zk users
[zk@CncLucZK ~]$ exit
logout
[root@CncLucZK /]#
/etc/login.defs 文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度.需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。
cat查看该文件中的内容,表 1 中对文件中的各个选项做出了具体的解释。
| 设置项 | 含义 |
|---|---|
| MAIL_DIR /var/spool/mail | 创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱,比如 zk用户的邮箱是 /var/spool/mail/zk。 |
| PASS_MAX_DAYS 99999 | 密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数,相当于 273 年,可理解为密码始终有效。 |
| PASS_MIN_DAYS 0 | 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。 |
| PASS_MIN_LEN 5 | 指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。 |
| PASS_WARN_AGE 7 | 指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。 |
| UID_MIN 500 | 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。 |
| UID_MAX 60000 | 指定用户最大的 UID 为 60000。 |
| GID_MIN 500 | 指定最小 GID 为 500,也就是在添加组时,组的 GID 从 500 开始。 |
| GID_MAX 60000 | 用户 GID 最大为 60000。 |
| CREATE_HOME yes | 指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。 |
| UMASK 077 | 用户主目录的权限默认设置为 077。 |
| USERGROUPS_ENAB yes | 指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes。 |
| ENCRYPT_METHOD SHA512 | 指定用户密码采用的加密规则,默认采用 SHA512,这是新的密码加密模式,原先的 Linux 只能用 DES 或 MD5 加密。 |
参考文献:
Linux 用户和用户组管理
Linux用户和用户组