自己在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