可完全恢复,但需依赖预存权限快照、包管理器重置或参考机acl导出;无备份时仅能局部修复关键目录和文件权限。

Linux 系统目录权限被误改(比如执行了 chmod -R 777 / 或 chmod 000 /etc)后,不能靠“撤销”恢复,但可以通过几种可靠方式还原默认权限。核心思路是:**用已知正确的权限信息覆盖当前错误状态**。是否能完全恢复,取决于你有没有提前准备、系统是否还能运行、以及修改范围有多大。
用包管理器一键重置(最推荐,适用于标准安装)
绝大多数系统文件权限由 RPM(RHEL/CentOS/Fedora)或 dpkg(Debian/Ubuntu)在安装时写入数据库。只要没手动改过文件内容,就能用它还原原始权限:
- RHEL/CentOS/Fedora:
sudo rpm --setperms -a(全系统)或sudo rpm --setperms openssh-server(单个包) - Debian/Ubuntu:
sudo debsums -c | grep "mode"先查异常,再用sudo apt install --reinstall $(dpkg -S $(debsums -c | grep "mode" | awk '{print $2}' | sort -u) | cut -d: -f1 | sort -u)重装相关包(较重),或更稳妥地:sudo dpkg --configure -a触发重新配置(部分包会重设权限)
用 ACL 快照精准还原(最准,需有备份或可用参考机)
如果之前运行过 getfacl -R / > perms.bak,或手头有一台同版本、未改动的干净机器,这是精度最高的方法:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 在正常机器上导出:
sudo getfacl -R /usr /etc /bin /sbin /lib* > clean-perms.acl(不必全盘,关键目录即可) - 传到故障机(如 SSH 还通):
scp clean-perms.acl user@broken:/tmp/ - 在故障机上执行:
sudo setfacl --restore=/tmp/clean-perms.acl - 注意:
setfacl --restore会同时恢复权限、属主、属组;若只改了 chmod 没动 chown,可加--no-restore-owner避免覆盖属主
用 find 批量修正常见模式(适合局部混乱、无备份时)
当只有部分目录出问题(如 /usr/bin 可执行文件全变 644),且你知道标准权限规则,可用 find 快速修复:
- /etc 下 root 所有配置文件应为 644:
sudo find /etc -type f -uid 0 ! -perm 644 -exec chmod 644 {} \; - /usr/bin 和 /bin 下可执行文件应为 755:
sudo find /usr/bin /bin -type f -perm /111 -exec chmod 755 {} \; - /tmp 应为 1777:
sudo chmod 1777 /tmp - /root 应为 700:
sudo chmod 700 /root - 关键 SUID 文件(如 passwd、su)需补权限:
sudo chmod u+s $(which passwd) $(which su)
进救援环境挂载修复(系统无法启动时必须)
如果改完后无法登录或服务起不来,需从 Live CD/USB 启动,挂载原系统再操作:
- 启动 Live 系统 → 打开终端 →
sudo fdisk -l找根分区(如 /dev/sda1)→sudo mkdir /mnt/sys && sudo mount /dev/sda1 /mnt/sys - 然后进入 chroot 或直接对挂载点操作:
sudo chroot /mnt/sys(可选),或sudo find /mnt/sys/usr/bin -type f -perm /111 -exec chmod 755 {} \; - 完成后
sudo umount /mnt/sys,重启










