首选chroot后用setfacl --restore还原acl权限模板,若无备份则导出/etc等核心路径最小化权限并恢复;同步执行chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo修复sudo setuid位,最后exit、umount、reboot完成修复。

误执行chmod -R 777 /后,根目录及全部子目录权限失控,sudo失效、服务崩溃、图形界面无法加载、普通用户甚至无法登录,系统处于完全不可用状态。
立即停止操作并确认当前可用入口
终端已黑屏或仅显示bash提示符?先别慌。若还能通过SSH保持连接,请立刻执行killall -u $USER终止所有用户进程,防止权限污染进一步扩散。若已断开且无SSH,必须使用外部介质介入——桌面版优先走GRUB恢复模式,服务器版可直连root控制台。
注意:【此时绝对不可再执行任何chmod、chown或rm命令】,否则可能覆盖关键元数据,导致ACL模板无法还原。
从Live USB启动并挂载原系统
准备一张与故障机同版本(如V10 SP2 2503)的银河麒麟安装U盘,插入后重启,BIOS中选择UEFI USB启动→进入引导菜单→选“Troubleshooting”→“Rescue a Kylin Linux system”。
等待加载完成后,系统会自动探测本地磁盘。当提示“Would you like to start rescue mode?”时,按Tab切换至“Yes”,回车确认。
若自动挂载失败,手动执行:lsblk识别根分区(通常为/dev/sda2或/dev/nvme0n1p2)→mkdir /mnt/sysroot→mount /dev/sda2 /mnt/sysroot。XFS文件系统需额外加-o nouuid参数避免UUID冲突。
恢复原始权限模板(核心步骤)
第一步:切换到原系统环境
执行chroot /mnt/sysroot,此时命令行提示符变为#,代表已进入故障系统的根上下文。
第二步:检查ACL备份是否存在
运行ls -l /linux.txt。若该文件存在(说明此前已在同版本干净系统导出过权限模板),直接执行setfacl --restore=/linux.txt。过程中出现“没有那个文件或目录”提示可忽略,这是因部分临时路径在救援环境中不存在,不影响主体权限恢复。
第三步:若无现成模板,立即生成最小化基准
执行cd / && getfacl -p -R /etc /usr/bin/sudo /var/log /home > /tmp/fallback.acl,仅导出最核心四路径权限。随后运行setfacl --restore=/tmp/fallback.acl。此操作可在5分钟内恢复sudo、日志写入和用户主目录基础访问能力。
修复sudo二进制关键属性
方法一:快速校验并重置
执行ls -l /usr/bin/sudo,若输出中不包含rwsr-xr-x或所有者不是root,则立即运行:chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo。
方法二:强制重建(当文件损坏时)
执行dnf reinstall sudo -y或apt install --reinstall sudo -y(根据系统包管理器选择)。该操作会重新部署官方签名的sudo二进制,并自动修复所有权与setuid位。
退出并重启系统
依次执行exit(退出chroot)、umount -R /mnt/sysroot、reboot -f。拔掉U盘,让系统从硬盘正常启动。











