统信uos或deepin因误改/etc/pam.d/配置导致认证失败,需通过grub进入bash修复:先remount为读写,再用备份或重建方式恢复common-auth等关键pam文件。

统信UOS或Deepin系统因误改/etc/pam.d/下配置文件(如common-auth、system-auth或login),导致所有账户输入正确密码仍提示“Authentication failure”,无法登录图形界面或TTY终端,必须通过救援模式修复。
进入GRUB恢复模式启动
重启电脑,在统信启动画面出现前反复按Shift键(UEFI模式下可能需长按Esc),调出GRUB菜单。
用方向键选中当前默认内核条目,按e进入编辑模式。
找到以linux开头的行,在行末尾空格后追加init=/bin/bash(注意前面留一个空格),然后按Ctrl+X或F10启动——这将跳过完整初始化,直接挂载根文件系统并进入bash shell。
【关键前提:根分区必须可写】此时系统以只读方式挂载/,需先执行mount -o remount,rw /,否则后续所有修改都会失败。
定位并还原损坏的PAM配置
先确认哪些文件被改动:运行ls -lt /etc/pam.d/ | head -10,重点关注修改时间接近故障发生时刻的文件,常见目标是common-auth、system-auth、login、su。
方法一:用备份副本覆盖(若存在)
统信系统通常会在/etc/pam.d/下保留.dpkg-old或.bak后缀备份,例如common-auth.dpkg-old。执行cp /etc/pam.d/common-auth.dpkg-old /etc/pam.d/common-auth即可恢复。
方法二:从live环境拷贝原始文件(无备份时)
若无备份,需挂载live系统镜像或另一份统信安装介质中的对应文件。但更稳妥的是——直接重建最小可用配置:
用cat > /etc/pam.d/common-auth 逐行写入标准内容(以统信UOS 20/23系为例):
auth [default=ignore] pam_unix.so nullok_secure
auth optional pam_permit.so
auth required pam_deny.so
保存后按Ctrl+D退出重定向;该配置可确保本地用户凭密码正常认证,不依赖其他模块。
强制更新PAM运行时缓存
执行pam-auth-update --force,该命令会重新生成/etc/pam.d/common-*系列符号链接,并校验语法合法性。
若提示“syntax error in /etc/pam.d/xxx”,说明刚写的配置仍有格式问题,需返回上一步检查缩进、空格、缺失的so后缀或拼写错误。
确认无报错后,运行exec /sbin/init重启初始化进程,或直接exec /sbin/reboot -f强制重启。











