小白操作Linux,手抖導致誤修改了系統文件和目錄權限,導致系統宕機的修復。
chmod 777 -R / chmod 777 -R / test
有的是真不懂,執行了上面的第一條命令,有的是懂,但是操作太快或者粗心大意,或者有亂敲空格的惡習,諸如此類... 不勝枚舉,總之闖禍了。
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 重啟系統 # 如果執行了上述過程,仍然無法通過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