参考源
https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0
版本
本文章基于 CentOS 7.6
简介
由于 /etc/passwd 文件是所有用户都可读的,如果密码太简单或者规律比较明显的话,很容易被破解。
因此对安全性要求较高的 Linux 系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件就是 /etc/shadow 文件。
超级用户才拥有该文件读权限,这就保证了用户密码的安全性
/etc/shadow 中的记录行与 /etc/passwd 中的记录行是一一对应的,它由 pwconv
命令根据 /etc/passwd 中的数据自动产生。
pwconv
[root@sail etc]# cat /etc/shadow
root:$6$tayfZCYF.$EaUXCh2NF1scPeygMBIRz1wvsdiCtCu3EPd1SqrApl.2etnpZ1SY42vS1XdGxAqn4rGbfr4JrwexJ96vZYvf6/:18925:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
operator:*:17834:0:99999:7:::
games:*:17834:0:99999:7:::
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:18088::::::
dbus:!!:18088::::::
polkitd:!!:18088::::::
sshd:!!:18088::::::
postfix:!!:18088::::::
chrony:!!:18088::::::
ntp:!!:18088::::::
tcpdump:!!:18088::::::
nscd:!!:18088::::::
admin:!!:18925:0:99999:7:::
它的文件格式与 /etc/passwd 类似,由若干个字段组成,字段之间用 : 隔开。
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 登录名
与 /etc/passwd 文件中的登录名相一致的用户账号。
- 加密口令
加密后的用户口令字,长度为 13 个字符。
如果为空,则对应用户没有口令,表示登录时不需要口令。
如果含有不属于集合 { ./0-9A-Za-z } 中的字符,则对应的用户不能登录。
- 最后一次修改时间
从某个时刻起,到用户最后一次修改口令时的天数。
时间起点对不同的系统可能不一样。
例如在 SCO Linux 中,这个时间起点是 1970年1月1日。
- 最小时间间隔
两次修改口令之间所需的最小天数。
- 最大时间间隔
口令保持有效的最大天数。
- 警告时间
从系统开始警告用户到用户密码正式失效之间的天数。
- 不活动时间
用户没有登录活动但账号仍能保持有效的最大天数。
- 失效时间
一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。
期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
- 标志
这个字段目前没有使用,等待新功能的加入。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/277028.html