小白操作Linux,手抖导致误修改了系统文件和目录权限,导致系统宕机的修复。
chmod -R /
chmod -R / test
有的是真不懂,执行了上面的第一条命令,有的是懂,但是操作太快或者粗心大意,或者有乱敲空格的恶习,诸如此类... 不胜枚举,总之闯祸了。
Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行。
修复的方法如下:
# 、通过一台权限正常的 Linux(最好内核版本和故障服务器相同) 通过命令:
getfacl -R / >systemp.bak # 将这个正常系统的/目录下所有文件的权限都备份保存在 systemp.bak 中。 # 、如果异常服务器未重启等操作并且连接未端,可以使用 scp 命令将正常的备份文件传至异常服务器中,命令如下:
scp root@目标机器 IP:system.bak 文件路径 本地存放 system.bak 路径 # 也可用其他方法把 systemp.bak 移动到异常服务器中。 # 、在异常服务器中执行命令:
setfacl --restore=systemp.bak # 即可将现在的系统权限恢复成和正常系统一样。 、reboot 重启系统
# 如果执行了上述过程,仍然无法通过ssh远程该服务器,那就看下系统日志message
比如报错:客户端:
[c:\~]$ ssh 10.68.215.215 29992
Connecting to 10.68.215.215:29992...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Connection closed by foreign host.
Disconnected from remote host(10.68.215.215:29992) at 13:10:18.
Type `help' to learn how to use Xshell prompt.
重启sshd服务报错
root@bt:~# /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
服务的message报错(message日志和重启ssh服务都提示 )
/etc/ssh/ssh_host_dsa_key
etc/ssh/ssh_host_rsa_key
文件权限问题,那么请参考正常系统的文件权限,将上述命令目录下面的文件权限调整和正常系统一样的权限即可:
# CentOS7.x
# CentOS6.x