linux 系统 chmod 误操作权限异常修复方式

Linux 系统中如果意外误操作将根目录或系统默认关键目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 和 setfacl 命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行。

假设执行了 chmod -R 777 / ,常见会导致的问题有:
a、密码正确,但是无法登陆系统
b、重启服务器后启动卡住
c、服务启动失败,如 sshd
可以使用命令 rpm -Va 查看文件权限是否被修改:
修复的方法如下:
1、通过一台权限正常的Linux(最好内核版本和故障服务器相同) 通过 getfacl -R / >filename.bak 将这个正常系统的 /目录下所有文件的权限都备份保存在 filename.bak 中:

root@BJ-CentOS7 ~ # getfacl -R / > filename.bak

2、拷贝 filename.bak 文件至权限异常服务器,由于很多系统默认目录文件权限不正确,如 sftp、scp 等方式连接会异常,服务器未重启情况下,只要能进入系统则可以通过 wget 命令下载文件;或者密码认证出错时进入单用户模式启动 network 服务下载文件至异常服务器
#/etc/init.d/network start
#wget x.x.x.x/filename.bak

3、在异常服务器中执行命令 setfacl --restore=filename.bak 即可将现在的系统权限恢复成和正常系统一样

#setfacl --restore=filename.bak

等待命令执行完毕,系统目录文件权限修正后可验证问题是否解决

相关文章
相关标签/搜索