本帖最后由 牵网线的 于 2022-11-28 18:12 编辑
问题现象:
实习生来了。。。操作需要需要root权限,拿到权限之后,一个失手,多来了一个空格。 - rm -rf ./ #删除当前路径下的文件
- rm -rf . / #删除当前路径下的文件和/
复制代码
解决办法: 人生苦短,做好备份,谨防 删库跑路。 提前预防一下吧,做好安全培训。例如尽量rm准确的文件名,并带i参数,提示是否删除。 网上也搜集到几个比较好的方法:
1、安装safe-rm程序 [backcolor=rgba(255, 255, 255, 0.9)] 开源软件safe-rm替代rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。 可以将 safe-rm 更名为 rm 并放在 $PATH 中比 原rm程序靠前的位置。一些脚本中使用完全路径/bin/rm则不会受此影响。 - $ rm -rf /etc/
- safe-rm: skipping /etc/
复制代码[backcolor=rgba(255, 255, 255, 0.9)]
2、建立回收站机制,定时自动清理
写个shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站。
1. 在/home/username/ 目录下新建一个目录,命名为:.trash
2. 在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh - TRASH_DIR="/home/username/.trash"
-
- for i in $*; do
- STAMP=`date +%s`
- fileName=`basename $i`
- mv $i $TRASH_DIR/$fileName.$STAMP
- done
复制代码
3. 修改~/.bashrc, 增加一行,用我们自建的remove.sh替代rm命令 - alias rm="sh /home/username/tools/remove.sh"
复制代码
4. 设置crontab,定时每天0点清空垃圾箱 - 0 0 * * * rm -rf /home/username/.trash/*
复制代码
5. source ~/.bashrc 使替换立即生效
注意:脚本中rm -rf 变量的使用。脚本尽量不要使用 rm -rf $FOO/, 请使用 rm -rf $FOO;另外删除尽量不要写相对路径,不要带变量。 |