部门刚上线了一个新系统,发现一个 BUG,于是开发直接上机器调试,他认为是文件目录权限不够的问题,于是想用 chmod -R 777 先给这个程序目录全部权限试试。
结果,那家伙手一抖命令敲成了:
chmod 777 -R /*
而且想都不想就回车了,然后弹出一堆 /proc/*** 没权限更改目录权限的错误提示,我一看就冷了一大截。。。里面让他 ctrl +C 终止命令。
不出所想,系统文件权限已经大部分都变成了"777"!下面是解决方法:
Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行。修复的方法如下:
1、通过一台权限正常的 Linux(最好内核版本和故障服务器相同) 通过 getfacl -R / >systemp.bak 将这个正常系统的/目录下所有文件的权限都备份保存在 systemp.bak 中。
2、如果异常服务器未重启等操作并且连接未端,可以使用 scp 命令将正常的备份文件传至异常服务器中,命令如下:
scp root@目标机器 IP:system.bak 文件路径 本地存放 system.bak 路径
也可用其他方法把 systemp.bak 移动到异常服务器中。
3、在异常服务器中执行命令 setfacl --restore=systemp.bak 即可将现在的系统权限恢复成和正常系统一样。
4、reboot 重启系统