safe-rm防止误删

在使用rm命令,一不小心使用rm -rf /*就要删库跑路了,所以为了避免发生误删除操作,可以使用safe-rm来禁止对某些文件或目录使用rm操作

安装

wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz \
tar -zxvf  safe-rm-0.12.tar.gz \
cp safe-rm-0.12/safe-rm /usr/local/bin/ 

貌似可以直接使用sudo apt install safe-rm安装

配置环境变量

在/etc/profile或/etc/bashrc或~/.bashrc中添加export PATH=/usr/local/bin:$PATH ,然后使用source /etc/profile使得环境变量生效
(/usr/local/bin要放在前面,因为搜索可执行文件路径的时候,会先从PATH变量前面的目录中开始查找,这样/usr/local/bin目录中的rm会比/usr/bin目录中的rm先被找到)

重命名 || 创建软连接 || 使用别名

这一步只需要使用三种方法中的其中一种就行,只要保证rm最终执行的是/usr/local/bin/safe-rm而不是/usr/bin/rm就行了

1.重命名

cd /usr/local/bin \
mv safe-rm rm

虽然/usr/local/bin中已经配置到PATH中了,但是这个目录下只有safe-rm,没有rm,可以把safe-rm重命名为rm

2.创建软连接

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

虽然/usr/local/bin中已经配置到PATH中了,但是这个目录下只有safe-rm,没有rm,所以可以创建一个名为rm的软连接连接到safe-rm,这样调用rm的时候就会使用safe-rm来执行命令了,这时使用which rm来查看,结果是/usr/local/bin/safe-rm

3.使用别名

执行alias rm="safe-rm -i",这时使用which rm来查看,结果是safe-rm -i
为了使得别名在下次启动的时候依然生效,可以在/etc/profile或/etc/bashrc或~/.bashrc中添加配置alias rm="safe-rm -i"

配置禁删目录

在/etc/safe-rm.conf 或~/.safe-rm中配置

/
/*
/home/px
/home/px/*
/home/px/Code/*

这里需要同时配置被保护目录的父目录和祖先目录,不然用户可以直接删除父目录从而删除被保护的目录

测试

这里我现在/home/px目录下创建一个test目录

cd ~/
sudo mkdir test

然后删除

rm -rf ~/test
safe-rm: skipping /home/px/test/

如果想要删除这些被保护的目录或文件,可以使用可视化界面来把它们放到回收站中

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值