1. 程式人生 > 實用技巧 >怎樣阻止Linux伺服器執行rm -rf /*命令

怎樣阻止Linux伺服器執行rm -rf /*命令

自己在Debian 9.9上測試成功,請結合您作業系統的環境,謹慎操作,在進行測試時候儘量先使用一個臨時目錄,若由於你的不正確操作造成的後果與本人無關

  

眾所周知,Linux中的rm -rf /*命令是一條災難性的命令.因此有的運維人員想一些辦法來禁止這條命令的執行,今天演示一個簡單的

  

今天我們使用的是替換rm命令的方法,然後做一個簡單的配置,讓系統不能執行rm -rf /*

1.下載safe-rm

實際上有這一個工具,也就是safe-rm命令,我們用來替換rm就行了,實際上safe-rm就是一個刪除命令,只不過呢它可以通過配置檔案來做一些過濾.
官網下載https://launchpad.net/safe-rm/+download


我直接下載0.12版本

wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz

  

2.替換系統的rm命令

# 解壓
tar -zxvf safe-rm-0.12.tar.gz
# 將safe-rm命令複製到系統的/usr/local/bin目錄
cp safe-rm-0.12/safe-rm /usr/local/bin/
# 建立連結,將safe-rm替換rm
ln -s /usr/local/bin/safe-rm /usr/local/bin/rm

  

此時已經替換掉rm命令,為了確保環境變數有效,我們將/usr/local/bin目錄設定在所有PATH環境變數之前.先更改/etc/profile檔案,在檔案末尾追加以下程式碼

PATH=/usr/local/bin:$PATH

  

編輯完畢之後,為了讓環境變數在整個系統全域性生效,我們重啟作業系統.重啟之後執行rm命令就相當於執行safe-rm了

  

3.設定過濾目錄

過濾目錄將不被刪除,編寫 /etc/safe-rm.conf 檔案,新增自己需要過濾的目錄,以下是配置示例,實際上要根據你的需求來

/ 代表過濾 /
/* 代表過濾 / 下面的所有檔案

在以上程式碼中,我過濾掉safe-rm所在目錄和其連結所在目錄,除此之外,還過濾其配置檔案,這樣的話可以一定程度上做到安全防護了

  

如果配置檔案中,有 /root/test/123 這樣一條規則,那麼刪除/root/test/123檔案時會被過濾掉,但是刪除/root/test時能成功刪除,因此不支援遞迴的規則,那麼配置檔案我們應該寫成以下格式

原文:https://blog.csdn.net/qq_34330286/article/details/103456200