暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux强行禁用掉rm高危命令、增加删除二次确认、过滤指定目录不可被删除【测试成功】

巴韭特锁螺丝 2024-04-15
420

一、需求背景

    rm -rf
命令在 Linux 系统中有极大的破坏力,它是一个极度危险的命令。一旦执行成功,将会删除服务器上的所有文件。它的作用是递归删除指定目录及其所有内容,无论其中是否包含重要的系统文件。

    可以采取一些措施来降低风险,比如重写某些危险命令(如rm、reboot、shutdown、fdisk等),或者使用safe-rm命令替代rm命令。safe-rm具有rm命令的所有功能,但可以设置路径黑名单,黑名单中的目录或文件将不会被删除。

二、屏蔽高危rm命令(两种方法)

1、一键脚本执行安装

    wget http://www.dwhd.org/script/securityremove.sh
    bash securityremove.sh

    2、通过safe-rm实现屏蔽指定路径(0.12版本)

    1)安装safe-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
      # 将safe-rm命令复制到系统的/usr/local/bin目录
      cp safe-rm-0.12/safe-rm usr/local/bin/
      # 创建链接,将safe-rm替换rm
      ln -s usr/local/bin/safe-rm usr/local/bin/rm


      2)配置环境变量

        vim etc/profile
        PATH=/usr/local/bin:$PATH
        source etc/profile

        3)设置过滤路径

            vim etc/safe-rm.conf

          /root
          /root/*
          /root/test
          /
          /*
          /bin
          /boot
          /dev
          /etc
          /etc/*
          /etc/safe-rm.conf
          /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


          针对rm -rf /*无法屏蔽依然会误删的问题,可采用chattr +i / 进行屏蔽。

          实测效果:

            [root@JQNode1 ~]# safe-rm  -rf /*
            safe-rm: skipping /boot
            safe-rm: skipping /data
            safe-rm: skipping /dev
            safe-rm: skipping /docker
            safe-rm: skipping /etc
            safe-rm: skipping /home
            safe-rm: skipping /media
            safe-rm: skipping /mnt
            safe-rm: skipping /mysql
            safe-rm: skipping /nginx
            safe-rm: skipping /ops
            safe-rm: skipping /opt
            safe-rm: skipping /proc
            safe-rm: skipping /root
            safe-rm: skipping /run
            safe-rm: skipping /srv
            safe-rm: skipping /sys
            safe-rm: skipping /temp
            safe-rm: skipping /tmp
            safe-rm: skipping /usr
            safe-rm: skipping /var
            /bin/rm: 无法删除"/bin": 权限不够
            /bin/rm: 无法删除"/lib": 权限不够
            /bin/rm: 无法删除"/lib64": 权限不够
            /bin/rm: 无法删除"/sbin": 权限不够


            三、效果验证

            实现效果:

              [root@JQNode1 ops]# rm -rf /
              Why run this command
              [root@JQNode1 ops]# rm -rf /*
              Why run this command





              文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论