當危險的動作發生, 誤刪 /user/bin目錄後的補救 以下是昨天晚上真實的誤操作現場,模擬記錄一下 (這是測試環境,所以操作得很隨意,有些執行動作很不規範) ...
當危險的動作發生, 誤刪 /user/bin目錄後的補救
以下是昨天晚上真實的誤操作現場,模擬記錄一下
(這是測試環境,所以操作得很隨意,有些執行動作很不規範)
在上面編譯一個軟體Dboop,完事以後想把它做個軟鏈到 /usr/bin
sudo - su
cd /usr/local/dboop/bin/
cp Dboop dboop
ln -s /usr/bin /usr/local/dboop/bin/dboop (這句寫錯了)
ln --help
ln -s /usr/bin/ /usr/local/dboop/bin/dboop -f (這句繼續 錯)
ll ( WHAT?怎麼出來個這玩意,心想,操,ln又寫反了啊!!!)
rm -rf dboop
....
然後瞬間一激靈,覺得不對,/usr/bin目錄下的所有文件都涼了。
啥也執行不了,yum wget sudo ...全沒了
恢復過程從其他機器 scp拷貝 /user/bin/目錄過來
這裡要註意的點:
別動機器上的其他服務(我這台測試機上當時還跑著nginx,uwsgis,celry,redis,mysql.....等服務) 一直能正常服務
別退出當前SHELL ,其他SHEELL登進來,會發現沒有SUDO 了
從其他機器SCP過來時,可能會提示沒有SCP文件,需要變通一下
拷過來的文件許可權可能不對了
重要的是sudo許可權亂了。
sudo -su 會報錯:
sudo:有效用戶 ID 不是 0,sudo 屬於 root 並設置了 setuid 位嗎?
這時候試了很多方法都不行,只能找系統部同事
chmod u+s /usr/bin/sudo
ln -s /usr/bin/sudo /usr/bin/sudoedit
就可以了,誤刪/user/bin目錄 已經修複了
教訓就是:
ln命令的源地址在前,目的地址在後
ln命令的源地址在前,目的地址在後
ln命令的源地址在前,目的地址在後