最近看了一篇文章,讲的是 rm -rf / 酿成的一系列惨案……
有个程序猿很忧桑:一个命令rm -rf/ ,他把整个公司删没了
然后还配了世界名画,呃(⊙o⊙)…
鉴于自己是个小白,再联系到之前在虚拟机上也曾犯过这个噩梦般的失误,所以上网找了下如何避免使用 rm -f 命令失误,然后看到了这个神器:safe-rm。
用 safe-rm 替代 rm 命令:safe-rm 工具可以添加保护名单,被添加到保护名单的文件和文件夹不能被删除,以此保命~_~。
以下是具体的操作步骤:
❶ cd 到下载目录(本次实验为 CentOS7 系统下的 /data 目录),到官网下载 safe-rm 安装包(到 2019.6.29 最新版本为 0.12.8,其实 2014 年就停止更新了。话说还有就是 GitHub 上也有个名字很相似的项目 saferm ——对吧~真的很像:https://github.com/lagerspetz/linux-stuff/blob/master/scripts/saferm.sh ,不要把二者搞混了):wget -c https://launchpadlibrarian.net/188958703/safe-rm-0.12.tar.gz (-c 的作用是可以断点续传)。
wget -c https://launchpadlibrarian.net/188958703/safe-rm-0.12.tar.gz
❷ 解压安装包:
tar -xvf safe-rm-0.12
❸ 将解压目录 safe-rm-0.12 下的 safe-rm 文件拷贝到 /usr/local/bin 下:
cp /data/safe-rm-0.12/safe-rm /usr/local/bin
查看拷贝结果
❹ 建立 /usr/local/bin/safe-rm 的软链接 /usr/local/bin/rm:
ln -s /usr/local/bin/safe-rm /usr/local/bin/rm
❺ CentOS7 自带的 rm 命令在 /usr/bin/rm,所以在 /etc/profile 中更改 $PATH,让 safe-rm 所在的文件夹(在此即 /usr/local/bin)排在第一位:
❻ 新建 safe-rm 的配置文件 /etc/safe-rm.conf,添加想要保护的文件夹和文件到该配置文件中:
每条过保护名单以回车分隔
另外,safe-rm 自身已经定义了一些不可删除的名单:
14 my %default_protected_dirs = (
15 '/bin' => 1,
16 '/boot' => 1,
17 '/dev' => 1,
18 '/etc' => 1,
19 '/home' => 1,
20 '/initrd' => 1,
21 '/lib' => 1,
22 '/lib32' => 1,
23 '/lib64' => 1,
24 '/proc' => 1,
25 '/root' => 1,
26 '/sbin' => 1,
27 '/sys' => 1,
28 '/usr' => 1,
29 '/usr/bin' => 1,
30 '/usr/include' => 1,
31 '/usr/lib' => 1,
32 '/usr/local' => 1,
33 '/usr/local/bin' => 1,
34 '/usr/local/include' => 1,
35 '/usr/local/sbin' => 1,
36 '/usr/local/share' => 1,
37 '/usr/sbin' => 1,
38 '/usr/share' => 1,
39 '/usr/src' => 1,
40 '/var' => 1,
41 );
我们也可以直接编辑 /usr/local/bin/safe-rm 文件添加保护名单,如下:
43 my %protected_dirs = (
44 '/usr/local/bin/safe-rm' =>1
45 );
❼ 重启电脑,或者使用 source /etc/profile 让 /etc/profile 配置文件生效。
❽ 尝试删除文件 /data/dollar01.sh,发现不能删除:
❾ 实验成功!
等等!后面两行什么鬼!?
/bin/rm: missing operand
Try '/bin/rm --help' for more information.
我感觉步骤没有什么大差错啊,这个报错困扰了我整整一个晚上,然后在 safe-rm 文件结尾找到了如下截图。
合着官方知道有 bug 但是还没修复?然后我尝试着把 /usr/lib 从保护名单中删除,然而还是没卵用。
算了,不会编程,我投降。各位大佬有知道怎么解决的留个言吧。
鉴于这个碍眼的 bug,强迫症的我可能不会用这个软件了,还是用 mv 命令或者给文件夹加权限吧!╮(╯▽╰)╭
实验到此结束,希望此次试验能给各位看官带来一点价值。好了,全文完!