回覆列表
-
1 # 11583486789
-
2 # 使用者1465424935672
伺服器誤刪了/usr/bin和/usr/sbin目錄,然後,從別的地方複製這兩個目錄過來,發現可能很多是連結等非普通檔案,可複製的時候對連結的處理不知道應加什麼引數,所以,一百多兆的東西複製了近一個G;最後,先給tar了一下,在複製。
這樣,伺服器基本弄好,建議:
1.不要直接用root登入,特別是不熟悉的人。
2.建議需要執行root許可權命令的使用sudo,少用su;
3.可用visudo來配置需要執行的root許可權命令
eg: xxx ALL=/sbin/mount,/sbin/unmount,/sbin/ifconfig NOPASSWD: ALL
rm命令不行;但是,還有“後遺症”:
1.登入時,"linux": unknown terminal type;
2.使用top, clear (知道的)時, 因為 terminal type問題;
3.vim也是類似問題,不可操作;已解決,但只能用基本模式;
4.tftp、telnet服務,已解決。
linux下可以透過debugfs來恢復rm誤刪除的檔案,原理主要是刪除的檔案並沒有實際上從硬碟上摸去,只是inode索引刪除了相關的資訊,因此只要找到剛刪除檔案的block上,就可以恢復已經刪除的檔案。 以下方法在ext3的檔案系統上測試透過,ext2和ext4的沒有測試過。假設刪除的檔案在dir下面,位於/dev/sda5上。 主要藉助debugfs
1 執行debugfs,進入排程模式
2 執行open /dev/sda5
4 執行logdump -i <num> 顯示此日誌內容
5 在輸出中尋找刪除檔案對應的block,記錄下來blockid 6退出debugfs,執行dd if=/dev/sda5 of=/tmp/saved bs=1024 count=1 skip=blockid 此時就把刪除的檔案恢復了,不過這個方法有個問題,如果刪除的是大檔案,則佔用多個block,操作起來比較麻煩。 debugfs在除錯模式下,命令列比較難用,不過其支援-R選項,可以在SHELL裡執行,就是用多個-R把要執行的命令連線起來,若命令中需要指定引數則需要加"",否則SHELL解析會有問題。 比較好用的工具有testdisk,之前用過他來恢復和備份系統的分割槽表,沒有恢復過檔案。