必须进GRUB单用户模式挂载根为读写,用visudo修复或从备份恢复/etc/sudoers,再执行visudo -c验证语法,最后exec /sbin/init重启;反复试sudo/su可能触发PAM锁定。

误改/etc/sudoers文件后,普通用户执行sudo命令直接报错退出、root也无法su -切换,系统失去提权能力,此时必须绕过sudo机制进入可写环境修复配置。该问题在批量部署脚本误写入语法错误或手动编辑漏掉Defaults行时高频发生。
确认故障现象并判断是否真被锁死
先打开终端,依次执行以下两条命令:
sudo ls /root → 若提示“syntax error in /etc/sudoers near line X”或直接退出无响应,说明文件已损坏;
su - root → 若提示“Authentication failure”,但你确定密码正确,则大概率是sudoers损坏触发了PAM策略拦截,需立即进救援模式。
【注意:不要反复尝试sudo或su,连续失败3次可能触发PAM锁定,导致后续救援时无法输入root密码】
用GRUB单用户模式挂载根分区为读写
第一步:重启机器,在银河麒麟Logo刚出现时猛按Shift(UEFI主板按Esc),调出GRUB菜单;
第二步:方向键选中默认启动项(如“Kylin Linux Advanced Desktop”),按e进入编辑;
第三步:找到以linux开头的行,将末尾的ro quiet splash替换为rw init=/bin/bash;
第四步:按Ctrl+X或F10启动——系统不再加载图形界面,而是直接进入bash shell,且根分区已挂载为可读写。
这一步的关键在于绕过systemd初始化流程,避免PAM和sudo服务加载,从而跳过所有权限校验环节。
修复/etc/sudoers文件
方法一:用visudo安全重建(推荐)
执行mount -o remount,rw / → 确保根分区确实可写;
执行visudo → 自动调用nano编辑器打开sudoers,底部会显示“Defaults env_reset”等标准行;
删掉你之前误加的非法行(比如漏写=号的User_Alias、多出的未闭合引号),保存退出即可。
方法二:从备份恢复(若你曾执行过visudo且系统自动生成过备份)
执行ls -l /etc/sudoers* → 查看是否存在sudoers~或sudoers.dpkg-old;
若有,直接执行cp /etc/sudoers~ /etc/sudoers → 覆盖损坏文件;
执行visudo -c → 验证语法是否通过,输出“sudoers file parsed OK”即成功。
【关键前提:此操作必须在root shell下完成,且不能依赖任何sudo或su命令】
重启并验证修复效果
执行exec /sbin/init → 退出bash shell,让系统正常启动;
登录桌面后打开终端,运行sudo whoami → 正常应返回root;
再运行sudo -l → 查看当前用户被授权的命令列表,确认无报错。











