首頁 > 軟體

Linux下防止「rm -rf /」誤刪除

2020-06-16 16:58:19

說明:在Linux下防止“rm -rf /”誤刪除,不解釋了,運維應該在每台伺服器都去設定這個問題以減少災難的發生。

方法:

1、safe-rm

safe-rm是一個開源軟體用來替代不太安全的rm,可以在/etc/safe-rm.conf中設定路徑黑名單,定義哪些不能被safe-rm刪除。

可以將safe-rm更名為rm並放在$PATH中比原rm程式靠前的位置,或者使用alias設定。一些指令碼中使用完全路徑/bin/rm則不會受此影響。

$ rm -rf /etc/
#提示 safe-rm: skipping /etc/

官方地址在這裡Ubuntu可以直接apt-get安裝,CentOS要下載原始碼安裝。

2、(推薦這種方式)建立回收站機制

它並不真正執行刪除操作,而是將檔案移動到一個特定目錄,可以設定定時清楚回收站,或者在回收站裡面的檔案大小達到一定容量時(或者用時間做判斷)執行刪除操作以騰出空間。

可以寫個Shell指令碼替換rm命令,或者在需要刪除檔案的時候使用mv命令將檔案移動到回收站。  

1)在/home/username/目錄下新建一個目錄,命名為:.trash

2)在/home/username/tools/目錄下,新建一個Shell檔案,命名為:remove.s

TRASH_DIR="/home/username/.trash"  
  
for i in $*; do  
    STAMP=`date +%s`  
    fileName=`basename $i`  
    mv $i $TRASH_DIR/$fileName.$STAMP  
done  

3)修改~/.bashrc, 增加一行

alias rm="sh /home/username/tools/remove.sh"

用我們自建的remove.sh替代rm命令

4)設定/etc/crontab,定期清空垃圾箱,如:

0 0 * * * rm -rf /home/username/.trash/*

每天0點清空垃圾箱

5)source ~/.bashrc使替換立即生效

3、注意指令碼中rm -rf變數的使用

在指令碼盡量不要使用 rm -rf $FOO/, 請使用rm -rf $FOO,另外刪除盡量不要寫相對路徑,不要帶變數。 

4、根檔案系統設定唯讀掛載

noauto,ro

5、各種備份

可以異地遠端備份重要的資料,採用dump的增量備份機制,LVM快照,虛擬化環境中的快照、raid5等等。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-12/149752.htm


IT145.com E-mail:sddin#qq.com