插件窝 干货文章 linux用户密码存放在哪个文件

linux用户密码存放在哪个文件

密码 哈希 存储 文件 513    来源:    2025-05-01

在 Linux 系统中,用户密码的存储位置和机制如下:


1. 传统密码文件(已淘汰)

  • /etc/passwd
    早期存放用户基本信息(如用户名、UID、GID等),密码以明文形式存储。
    现代系统仅保留占位符 x,实际密码已移至更安全的 /etc/shadow

2. 现代密码文件(默认位置)

  • /etc/shadow
    存储加密后的用户密码哈希及其他安全信息,仅 root 用户可读。
    文件格式示例: username:$6$salt$hashedpassword:lastchange:minage:maxage:warn:inactive:expire:reserved
    • $6$ 表示使用 SHA-512 加密(其他常见类型:$1$ MD5,$5$ SHA-256)。
    • salt 是随机字符串,用于增强哈希安全性。

3. 相关命令

  • 修改密码passwd username
  • 查看用户密码状态chage -l username
  • 手动编辑文件(需谨慎)vipwvigr(安全编辑工具)

4. 其他注意事项

  • 组密码:存储在 /etc/gshadow(类似 shadow 的组密码机制)。
  • LDAP/SSO:若系统使用外部认证(如 LDAP),密码可能不存储在本地文件中。

5. 安全提示

  • 直接编辑 /etc/shadow 可能导致系统故障,建议使用 passwd 命令。
  • 密码哈希不可逆,但可通过工具(如 john)暴力破解弱密码。

如果需要进一步分析密码策略或加密方式,可提供具体场景或错误信息。