背景資訊:
誤操作将根目錄777之後的恢複方法
第一階段,修複SSH(如果ssh沒有斷開,或者vnc可以登入的話無需挂載直接修複權限即可)
誤操作之後,系統已經登陸不進去,這個時候需要挂盤進去檢查問題,挂盤後,可執行以下操作來修複ssh以及系統登陸的問題
先挂盤,然後chroot一下,或者進入對應的目錄
cd /etc
chmod 644 passwd group shadow
chmod 400 gshadow
cd ssh
chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub
chmod 640 sshd_config
chmod 600 /etc/sscuretty
chmod 711 /var/empty/sshd
chmod u+s `which su`(這一步一般不用執行,可用在ubuntu的修複中)
修複完畢後解除安裝重新開機即可使用ssh以及管理終端進行登陸
第二階段,恢複誤操作前的系統權限
需要先找一台沒問題的,核心版本差異不大的機器,擷取該機器的權限(業務不一樣的話,對應的業務适用的檔案權限不會覆寫,需要手動去設定)
執行
getfacl -R / > ./linux.chmod.bak
得到正确的權限,copy到有問題的系統裡面
cd /
setfacl --restore=/root/linux.chmod.bak
然後重新開機機器即可替換成原來的權限
目前僅在centos 6.5下進行了測試,驗證通過,有問題随時交流~