在 Linux 系统中,用户密码及相关认证信息存储在不同的配置文件中,具体取决于系统使用的认证机制(如传统的 shadow 文件或现代服务如 LDAP/SSSD)。以下是主要文件及其作用:
x,表示实际密码存储在 /etc/shadow 中(若为加密字符串,则说明未启用 shadow 机制)。root 可读)。用户名:加密密码:最后一次修改时间:最小密码年龄:最大密码年龄:警告期:失效宽限期:账户过期时间:保留字段
$id$salt$hash,id 表示加密算法(如 $6$ 为 SHA-512,$1$ 为 MD5)。! 或 *,表示账户被锁定或密码未设置。/etc/gshadow。/etc/shadow 的组版本)。/etc/nsswitch.conf
files ldap 表示先查本地文件,再查 LDAP)。/etc/ldap.conf 或 /etc/openldap/ldap.conf。SSSD,配置在 /etc/sssd/sssd.conf。/etc/pam.d/ 目录下的配置文件(如 /etc/pam.d/login)。
pwconv 等工具生成),不建议直接修改。pam_pwquality 模块)。/etc/shadow 和 /etc/gshadow 必须仅对 root 可读(权限 640)。chmod 777 /etc/shadow 会破坏系统安全)。vipw、vigr 或 passwd 命令修改密码,避免直接编辑文件。root 密码,需通过引导参数(如 init=/bin/bash)进入恢复模式。/etc/passwd(基本信息)、/etc/shadow(密码哈希)。/etc/nsswitch.conf 和 PAM 配置决定是否使用 LDAP/SSSD。passwd、usermod)而非手动编辑文件。