safe -rm 为你的误操作上个锁

safe -rm 为你的误操作上个锁

前言

rm -rf / 一直对互联网从业人员来说是一个可怕的封印,如果你不小心打开它那就难受了,根据最新的POSIX.1-2008标准,rm -rf /命令不会被执行的,而是打印错误信息,但是老的POSIX-2004标准则无定义。在linux中我们使用的rm,touch,mkdir等命令都是由coreutils这个核心工具提供的,coreutils5.2版本稳定与2004年2月19日,而现在coreutils工具在Centos6一般是8.22版本,Centos7一般是8.4版本。只有你的coreutils的版本足够高(5.2以上),才可以“安全的”使用rm -rf /。

  • 我这个机器是阿里云的主机,Centos7系统,版本是8.22/

[root@cl-29-test ~]# uname -r
3.10.0-514.26.2.el7.x86_64
[root@cl-29-test ~]# rpm -qi coreutils |grep Version
Version : 8.22

  • 即便是这样,我们也有可能删除其他重要的库文件,数据文件,间接让我们的服务无法正常运行,所以在生产环境下为了避免误删除操作,通过很多方法尽量避免误操作删除,比如:回收站机制,修改rm 命令(mv 文件到/tmp目录。利用tmp目录的回收机制处理)。
  • 个人认为替换rm目录比较简单,今天和大家学习一款工具safe-rm ,用于替换rm 命令,来满足大部分安全删除需求。

介绍及原理

  • safe-rm 是一个开源软件用来替代不太安全的rm
  • 能够在 /etc/safe-rm.conf 配置路径黑名单,定义哪些不能被safe-rm删除
  • alias rm 为safe-rm (永久配置需要在自己的家目录.bashrc中配置。使其每次登陆自动加载生效)

安装

safe-rm的主页:https://launchpad.net/safe-rm

  • wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz
  • tar -xvzf safe-rm-0.12.tar.gz -C /usr/local/
  • mv safe-rm-0.12/ ./safe-rm    目录改名
  • sed -i s/’rm-i’/’safe-rm’/g ~/.bashrc && source   ~/.bashrc(永久替换rm 命令)
  • cp /usr/local/safe-rm/safe-rm /usr/bin/
  •  符号这个逻辑即可
  • touch /etc/safe-rm.conf  (默认不存在)

配置文件

  • 这个是safe-rm命令的内容,他会默认读取这个/etc/safe-rm.conf里我们定义的黑名单,默认这个文件不存在需要自己创建。

  • 全局配置文件  /etc/safe-rm.conf   (全路径书写)

[root@cl-29-test ting]# cat /etc/safe-rm.conf
/wang  #测试目录 ,切记目录不能写成 /wang/ ,否则不生效,还是会删除该目录
/var/www/html/ #博客站点代码目录
/usr/local/mysql/data/ #mysql数据目录
/ting/* # 这种形式,该目录下所有文件(链接文件除外)不可以删除,但是ting目录仍然可以删除,如果需要可以再加一个 /ting  来避免该目录被删除

########################系统重要目录###########/
/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
###############################################################

验证效果

备注:以下操作均用的上述配置文件测试

  • 删除wang目录

mkdir /wang 

touch /wang/test 

rm -rf /wang

  • 删除/ting/目录下的test文件

mkdir /ting

touch /ting/test

  • 删除/ting目录

备注:所以如果你想要保证某个目录下的所有文件不被删除,更安全的做法是除了把目录下文件拉黑,还需要同时添加该目录为黑名单,禁止删除。

总结

通过safe-rm这个工具能够为你的误操作上把锁,但是并不是绝对保险,还是要注意删除普通文件不要rm  -rf ,要通过rm 来一次询问会让你更清楚这个文件是不是你想删除的。后续讲解如果真的被误删除该如何恢复。

 

 

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...