插件窝 干货文章 linux密码存在哪些文件中

linux密码存在哪些文件中

密码 文件 etc 作用 620    来源:    2025-04-30

在 Linux 系统中,用户密码及相关认证信息存储在不同的配置文件中,具体取决于系统使用的认证机制(如传统的 shadow 文件或现代服务如 LDAP/SSSD)。以下是主要文件及其作用:


1. 本地用户密码文件(传统机制)

/etc/passwd

  • 作用:存储用户基本信息(如用户名、UID、默认 shell 等)。
  • 密码字段
    第二列为密码占位符,通常为 x,表示实际密码存储在 /etc/shadow 中(若为加密字符串,则说明未启用 shadow 机制)。

/etc/shadow

  • 作用:存储用户密码的加密哈希及其他安全信息(仅 root 可读)。
  • 字段格式(每行一个用户,冒号分隔): 用户名:加密密码:最后一次修改时间:最小密码年龄:最大密码年龄:警告期:失效宽限期:账户过期时间:保留字段
    • 加密密码
      格式为 $id$salt$hashid 表示加密算法(如 $6$ 为 SHA-512,$1$ 为 MD5)。
      若为 !*,表示账户被锁定或密码未设置。

/etc/group

  • 作用:存储用户组信息,不直接存密码,但若组密码启用(罕见),会存储在 /etc/gshadow

/etc/gshadow

  • 作用:存储组密码和管理员信息(类似 /etc/shadow 的组版本)。

2. 其他认证系统的密码文件

LDAP/网络认证

  • 文件/etc/nsswitch.conf
    • 作用:定义用户认证来源顺序(如 files ldap 表示先查本地文件,再查 LDAP)。
  • 配置
    • LDAP 客户端配置通常在 /etc/ldap.conf/etc/openldap/ldap.conf
    • 若使用 SSSD,配置在 /etc/sssd/sssd.conf

PAM(Pluggable Authentication Modules)

  • 文件/etc/pam.d/ 目录下的配置文件(如 /etc/pam.d/login)。
    • 作用:控制认证流程,可能引用其他密码服务(如指纹、OTP)。

3. 特殊场景文件

/etc/security/passwd

  • 某些 Unix 系统(如 AIX)使用此文件存储密码,但 Linux 通常不使用。

/etc/shadow- 和 /etc/passwd-

  • 作用:备份文件(由 pwconv 等工具生成),不建议直接修改。

4. 密码策略文件

/etc/login.defs

  • 作用:定义密码默认策略(如长度、过期时间)。

/etc/security/pwquality.conf

  • 作用:密码复杂度规则(需结合 pam_pwquality 模块)。

注意事项

  1. 权限
    • /etc/shadow/etc/gshadow 必须仅对 root 可读(权限 640)。
    • 错误的权限可能导致安全风险(如 chmod 777 /etc/shadow 会破坏系统安全)。
  2. 编辑工具
    使用 vipwvigrpasswd 命令修改密码,避免直接编辑文件。
  3. 恢复密码
    • 单用户模式或 Live CD 下可重置密码(需物理访问权限)。
    • 若忘记 root 密码,需通过引导参数(如 init=/bin/bash)进入恢复模式。

总结

  • 主要文件/etc/passwd(基本信息)、/etc/shadow(密码哈希)。
  • 扩展认证:通过 /etc/nsswitch.conf 和 PAM 配置决定是否使用 LDAP/SSSD。
  • 安全操作:始终使用专用工具(如 passwdusermod)而非手动编辑文件。