内容一:/etc/shadow 文件的简介
1) /etc/shadow 文件存储着用户的密码和与之相关的信息
2) /etc/shadow 文件以冒号 “:” 作为分隔符,分类 8 段
内容二:/etc/shadow 文件的作用
2.1 第 1 段内容:用户名
/etc/shadow 文件的第 1 段存储的是用户名,和 /etc/passwd 文件中的用户名是一一对应的
2.2 第 2 段内容:密码
2.2.1 内容的含义
1) 如果是奇怪的字符串则代表是加密过的密码,格式是 $id$salt$hashed,其中 $id 是指加密算法。如果字符串:以 $1$ 开头则代表是用 MD5 加密,以 $2a$ 开头则代表是用 Blowfish 加密,以 $2y$ 开头则代表是用另一种算法长度的 Blowfish 加密,以 $5$ 开头则代表是用 SHA-256 加密,以 $6$ 开头则代表是用 SHA-512 加密
2) 如果是 2 个感叹号 “!!” 则代表从来都没有设置过密码
3) 如果为空则代表没有设置密码
4) 如果是 1 个星号 “*” 则代表用户被锁定,但是其它登陆方式不受限制,例 SSH 登陆
5) 如果是 1 个感叹号 “!” 则代表用户被锁定,但是其它登陆方式不受限制,例 SSH 登陆
6) 如果以 1 个感叹号开头 “!” 则代表用户被锁定
7) 如果以 2 个感叹号开头 “!!” 则代表用户被锁定
2.2.2 查看命令
# cut -d: -f1,7
2.2.3 修改命令
# passwd <user>
2.3 第 3 段内容:密码最后的修改日期
2.3.1 内容的含义
密码最后修改的日期于 1970 年 1 月 1 日相距的天数
2.3.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,3
或者:
# chage -l <user> | grep 'Last password change'
2.3.3 修改命令
# chage -d <date> <user>
或者:
# chage --lastday <date> <user>
2.4 第 4 段内容:修改密码最短天数间隔
2.4.1 内容的含义
两次修改密码最短天数间隔
1) 如果是 0 则代表随时可以修改密码
2) 如果是 99999 则代表永远都不能修改密码
2.4.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,4
或者:
# chage -l <user> | grep 'Minimum number of days between password change'
2.4.3 修改命令
# chage -m <days> <user>
或者:
# chage --mindays <days> <user>
2.5 第 5 段内容:密码过期的天数
2.5.1 内容的含义
修改密码后过多少天会过期
1) 如果是 99999 则代表永远都不会过期
2) 如果密码只是过期但是没有失效的话,则可以使用过期的密码更改密码再使用新密码登陆,如果密码失效的话则此密码不能再使用
2.5.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,5
或者:
# chage -l <user> | grep 'Maximum number of days between password change'
2.5.3 修改命令
# chage -M <days> <user>
或者:
# chage --maxdays <days> <user>
2.6 第 6 段内容:密码过期前提前多少天发出警告
2.6.1 内容的含义
密码过期前,提前多少天发出警告
如果为空则代表不发出警告
2.6.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,6
或者:
# chage -l <user> | grep 'Number of days of warning before password expires'
2.6.3 修改密码
# chage -W <days> <user>
或者:
# chage --warndays <days> <user>
2.7 第 7 段内容:密码失效的天数
2.7.1 内容的含义
密码过期后过多少天会失效
1) 如果是 99999 则代表永远都不会失效
2) 如果密码只是过期但是没有失效的话,则可以使用过期的密码更改密码再使用新密码登陆,如果密码失效的话则此密码不能再使用
2.7.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,7
或者:
# chage -l <user> | grep 'Password inactive'
2.7.3 修改密码
# chage -I <days> <user>
或者:
# chage --inactive <days> <user>
2.8 第 8 段内容:用户的失效日期
2.8.1 内容的含义
用户的失效日期于 1970 年 1 月 1 日相距的天数
2.8.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,8
或者:
# chage -l <user> | grep 'Account expires'
2.8.3 修改密码
# chage -E <date> <user>
或者:
# chage --expiredate <date> <user>
2.9 第 9 段内容:保留
这是一个保留位,目前没有作用