在 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
)而非手动编辑文件。