/etc/shadow 文件用于存储用户认证信息。它需要超级用户读取权限。
$ sudo cat /etc/shadow
root:MyEPTEa$6Nonsense:15000:0:99999:7:::
你会注意到它看起来与 /etc/passwd 的内容非常相似;然而,在密码字段中,你会看到一个加密的密码。字段之间用冒号分隔,如下所示:
- 用户名
- 加密密码
- 上次密码更改日期 - 表示自 1970 年 1 月 1 日以来的天数。如果为 0,则表示用户下次登录时应更改密码。
- 最小密码有效期 - 用户在能够再次更改密码之前必须等待的天数。
- 最大密码有效期 - 用户必须更改密码前的最大天数。
- 密码警告期 - 密码即将过期前的天数。
- 密码不活动期 - 密码过期后允许使用其密码登录的天数。
- 账户过期日期 - 用户将无法登录的日期。
- 为将来使用保留的字段。
在当今大多数发行版中,用户认证不仅仅依赖于 /etc/shadow 文件;还有其他机制,例如 PAM (可插拔认证模块),它们取代了认证。