1、下载到Linux服务器后并解压缩,复制safe-rm-0.12下的 safe-rm 命令到/usr/local/bin目录
下载 wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz

cp /opt/safe-rm-0.12/safe-rm /usr/local/bin/

2、替换 safe-rm 为系统默认的 rm 命令
做一个 rm 命令的符号链接,之后执行 rm 命令就相当于执行 safe-rm

ln -s /usr/local/bin/safe-rm /usr/local/bin/rm

设置环境变量,要保证/usr/local/bin在其他变量路径前面

先查看当前变量的顺序,可以看到/usr/local/bin没有在其他路径的最前面:

[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
修改编辑配置文件/etc/profile,添加下面一行

PATH=/usr/local/bin:$PATH
保存后,执行 source /etc/profile,使配置生效; 以后用 rm 命令删除,就相当执行的 safe-rm 命令了。

3、设置路径黑名单

创建/etc/safe-rm.conf文件,将重要文件或者目录的完整路径输入进去保存就可以了,每条以回车分隔。

[root@localhost /]# cat /etc/safe-rm.conf
/
/bin
/boot
/dev
/etc
/home
/initrd
/lib
/proc
/root
/sbin
/sys
/usr
/usr/bin
/usr/include
/usr/lib
/usr/local
/usr/local/bin
/usr/local/include
/usr/local/sbin
/usr/local/share
/usr/sbin
/usr/share
/usr/src
/var

/opt/test
/root/testone

在我们删除时候:rm -rf /root/testone
safe-rm: skipping /root/testone
当然还有个小问题,这里也适用于一些通配,比如我写的不能删除testone但是testone里面的能不能删除呢,答案是能删除的,所以就要再设置/root/testone/*就好了