如果不小心将/目录权限搞错了,比如chmod -R 777 /
那么恭喜你,系统将崩溃,系统很多命令无法启动,命令无法执行;
或许你会说,找一台正常的系统照着权限改回来,那么恭喜你,数十万的文件也会让你崩溃。
这时候可以通过系统自带的getfacl命令来拷贝和还原系统权限,本文将告诉你如何恢复linux系统根分区文件权限
解决方法:找一台权限正常的linux(最好和故障机同版本的)
通过getfacl -R / >systemp.bak将这个正常系统的/目录下所有文件的权限都备份保存在systemp.bak中
然后单用户进入故障服务器,在这种情况下network服务是可以启动的,启动网络服务通过ftp或者wget等方式将systemp.bak传输进异常系统;
reboot重启系统,不出意外的话,系统文件的权限已经恢复正常了,密码也可以登录了,ssh也能连接了,一切都美好了。
不过将 passwd命令和 su命令的权限还需要手动进一步修改,增加setuid权限位
chmod u+s which passwd
chmod u+s which su
至此系统的基本功能都已经正常了,若还有个别文件有问题,单独修复即可。