Linux密码存储文件详解:/etc/passwd与/etc/shadow
前言
在Linux系统中,用户密码的安全存储至关重要。传统上,密码信息曾直接存放在/etc/passwd文件中,但因其为世界可读,存在安全隐患。现代Linux采用更安全的/etc/shadow文件来保存加密后的密码。
/etc/passwd 文件
该文件存储所有用户账号的基本信息,每行对应一个用户,字段以冒号分隔。格式如下:
用户名:密码占位符:UID:GID:描述:家目录:登录Shell其中密码字段通常为x,表示真实密码已移至/etc/shadow。该文件权限为644,所有人可读,但只有root可写。
/etc/shadow 文件
该文件用于保存加密后的密码及密码策略相关信息,只有root用户可读取(权限为600或400)。格式如下:
用户名:加密密码:最后修改日期:最小修改间隔:最大有效期:警告期:不活跃期:过期日期:保留字段- 加密密码:通常以
$id$salt$hashed格式存储,id表示哈希算法(如1为MD5, 5为SHA-256, 6为SHA-512)。 - 日期字段:自1970年1月1日起的天数。
安全对比
| 文件 | 密码存储 | 权限 | 安全等级 |
|---|---|---|---|
| /etc/passwd | 仅占位符 | 644 | 低 |
| /etc/shadow | 加密哈希 | 600 | 高 |
常见操作
- 查看密码信息:
sudo cat /etc/shadow | grep username - 修改密码:
passwd username(自动更新shadow) - 锁定账户:
passwd -l username(在shadow密码前加!)
总结
了解/etc/passwd和/etc/shadow是Linux系统管理的基础。保持shadow文件的严格权限,并定期检查密码策略,可有效提升系统安全性。