银河麒麟系统认证失败主因是PAM模块阻断,常见于opasswd文件缺失、pwquality策略过严、pam_faillock锁定未清或system-auth语法错误;需依次检查修复文件权限、解锁账户、调整策略或重载PAM配置。

银河麒麟系统输入正确密码仍提示认证失败、无法登录,不是密码记错,而是PAM认证模块在验证链中某处被阻断,常见于opasswd文件缺失、pwquality策略过严、pam_faillock锁定未清或system-auth配置语法错误。
检查并修复密码历史文件缺失
90%以上的“Authentication token manipulation error”报错源于/etc/security/opasswd文件不存在。PAM配置中设置了remember=5(禁止重用最近5次密码),但系统找不到存储旧密码哈希的opasswd文件,直接中断整个密码更新流程。
以root身份打开终端,执行以下命令创建缺失文件:
touch /etc/security/opasswd
设置严格属主与权限,否则passwd仍会报错:
chown root:root /etc/security/opasswd → chmod 600 /etc/security/opasswd
【chmod 600必须执行】若权限大于600(如644),PAM会拒绝写入,错误持续存在。
解除PAM账户锁定状态
连续输错密码触发pam_faillock或pam_tally2后,即使密码正确也会被拦截。该锁定不显示明确提示,表面现象就是“认证失败,请重试”。
按Ctrl + Alt + F2切换到TTY终端,用当前用户名和密码登录(密码输入无回显)。
执行命令查看锁定状态:
pam_tally2 --user=【你的用户名】
【必须确认用户名准确,输错会导致后续操作无效】
若输出中“Failed login attempts”大于0,立即执行解锁:
pam_tally2 --user=【你的用户名】 --reset
该命令清零失败计数,无需重启即可生效。
临时绕过密码强度校验(应急)
当新密码被拒且日志显示“new password not acceptable”,大概率是pwquality策略过于严格,例如minlen=12或dcredit=-1等规则导致合法密码被拦截。
方法一:注释掉pwquality.conf中的强制策略项
vim /etc/security/pwquality.conf → 按i进入编辑模式 → 将minlen、minclass、dcredit等行前加#注释 → 按Esc → 输入:wq!保存退出
方法二:临时禁用PAM密码复杂度校验
编辑/etc/pam.d/system-auth,找到包含pam_pwquality.so的行,在其末尾添加【sufficient】参数,使校验失败时不中断整个流程。
验证system-auth语法并重载PAM
system-auth文件中任意一行语法错误(如漏写.so、参数拼写错误、缩进混乱)都会导致PAM加载失败,表现为所有认证路径统一返回“认证失败”。
第一步:检查语法是否合规
执行命令:pam-auth-update --package
若提示“syntax error in /etc/pam.d/system-auth”,说明该文件存在硬性错误,需人工排查。
第二步:定位问题行
用vim打开/etc/pam.d/system-auth,逐行检查含pam_faillock.so、pam_pwquality.so、pam_unix.so的行,确认路径存在、参数间有空格、无中文字符或全角符号。
第三步:备份并恢复默认配置(仅当确认原配置损坏时)
cp /usr/share/pam-configs/kylin-default /etc/pam.d/common-auth → pam-auth-update --package
执行后重启lightdm服务:
sudo systemctl restart lightdm











