失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 防止 rm -rf / 删根跑路——使用 safe-rm 替代 rm

防止 rm -rf / 删根跑路——使用 safe-rm 替代 rm

时间:2024-02-26 06:36:08

相关推荐

防止 rm -rf / 删根跑路——使用 safe-rm 替代 rm

最近看了一篇文章,讲的是 rm -rf / 酿成的一系列惨案……

惨!rm -rf /* 又新增一起「血案」

有个程序猿很忧桑:一个命令rm -rf/ ,他把整个公司删没了

然后还配了世界名画,呃(⊙o⊙)…

鉴于自己是个小白,再联系到之前在虚拟机上也曾犯过这个噩梦般的失误,所以上网找了下如何避免使用 rm -f 命令失误,然后看到了这个神器:safe-rm。

用 safe-rm 替代 rm 命令:safe-rm 工具可以添加保护名单,被添加到保护名单的文件和文件夹不能被删除,以此保命~_~。

以下是具体的操作步骤:

❶ cd 到下载目录(本次实验为 CentOS7 系统下的 /data 目录),到官网下载 safe-rm 安装包(到 .6.29最新版本为 0.12.8,其实 年就停止更新了。话说还有就是GitHub 上也有个名字很相似的项目 saferm ——对吧~真的很像:/lagerspetz/linux-stuff/blob/master/scripts/saferm.sh,不要把二者搞混了):wget -c /188958703/safe-rm-0.12.tar.gz (-c 的作用是可以断点续传)。

wget -c /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' =>145 );

❼ 重启电脑,或者使用 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 命令或者给文件夹加权限吧!╮(╯▽╰)╭

实验到此结束,希望此次试验能给各位看官带来一点价值。好了,全文完!

如果觉得《防止 rm -rf / 删根跑路——使用 safe-rm 替代 rm》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。