• 众所周知,Linux中的rm -rf /*命令是一条灾难性的命令.因此有的运维人员想一些办法来禁止这条命令的执行,今天演示一个简单的 今天我们使用的是替换rm命令的方法,然后做一个简单的配置,让系统不能执行rm -rf /* 1....

    自己在Debian 9.9上测试成功,请结合您操作系统的环境,谨慎操作,在进行测试时候尽量先使用一个临时目录,若由于你的不正确操作造成的后果与本人无关

    众所周知,Linux中的rm -rf /*命令是一条灾难性的命令.因此有的运维人员想一些办法来禁止这条命令的执行,今天演示一个简单的

    今天我们使用的是替换rm命令的方法,然后做一个简单的配置,让系统不能执行rm -rf /*

    1.下载safe-rm

    实际上有这一个工具,也就是safe-rm命令,我们用来替换rm就行了,实际上safe-rm就是一个删除命令,只不过呢它可以通过配置文件来做一些过滤.
    官网下载https://launchpad.net/safe-rm/+download
    我直接下载0.12版本

    wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz
    

    2.替换系统的rm命令

    # 解压
    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
    

    此时已经替换掉rm命令,为了确保环境变量有效,我们将/usr/local/bin目录设置在所有PATH环境变量之前.先更改/etc/profile文件,在文件末尾追加以下代码

    PATH=/usr/local/bin:$PATH
    

    编辑完毕之后,为了让环境变量在整个系统全局生效,我们重启操作系统.重启之后执行rm命令就相当于执行safe-rm了

    3.设置过滤目录

    过滤目录将不被删除,编写 /etc/safe-rm.conf 文件,添加自己需要过滤的目录,以下是配置示例,实际上要根据你的需求来

    /
    /*
    /etc
    /etc/*
    /data
    /data/mysql
    /data/mysql/datadir
    /data/mysql/datadir/*
    /usr
    /usr/local
    /usr/local/bin
    /usr/local/bin/*
    

    / 代表过滤 /
    /* 代表过滤 / 下面的所有文件

    在以上代码中,我过滤掉safe-rm所在目录和其链接所在目录,除此之外,还过滤其配置文件,这样的话可以一定程度上做到安全防护了

    如果配置文件中,有 /root/test/123 这样一条规则,那么删除/root/test/123文件时会被过滤掉,但是删除/root/test时能成功删除,因此不支持递归的规则,那么配置文件我们应该写成以下格式

    /
    /root
    /root/test
    /root/test/123
    

    4.测试

    接下来就是见证奇迹的时刻了,执行测试之前请确保你的配置文件编写正确,其次,你出错可与我无关!!!哈哈哈
    如下图:
    在这里插入图片描述

    文章原创首发自微信订阅号:极客开发者up,禁止转载

    展开全文
  • 做服务器运维的人众所周知, rm -rf / 命令在Linux下执行后,就是一场灾难。 好吧,先看一个事例,了解下这个命令的恐怖>>>一个命令rm -rf/ ,他把整个公司删没了 为了防止这种误删除操作...

    做服务器运维的人众所周知, rm -rf / 命令在Linux下执行后,就是一场灾难。

    好吧,先看一个事例,了解下这个命令的恐怖>>>一个命令rm -rf/ ,他把整个公司删没了

    为了防止这种误删除操作,找了很多办法,有建议回收站机制、也有说给重要目录设置权限等等方法、还有替换rm删除命令的方法;总结了一下,还是觉得替换rm命令比较简单直接,这里就记录一下替换 rm 命令的方法。

    原理:
    首先我们需要用到的软件(其实就是一个命令): safe-rm ,它具有 rm 命令的所有功能,不过 safe-rm 命令可以设置路径黑名单,也就是说在黑名单中的目录或文件将不会被删除;我们把 rm 命令替换为 safe-rm ,之后执行 rm 命令也就相当于执行 safe-rm 命令,也就不会误删除黑名单中的目录或文件了。

    safe-rm命令下载:百度网盘  官网下载

    1、下载到Linux服务器后并解压缩,复制safe-rm-0.12下的 safe-rm 命令到/usr/local/bin目录

    cp /opt/safe-rm-0.12/safe-rm /usr/local/bin/

    注:我是解压缩到//opt/safe-rm-0.12目录下的。

    现在已经可以直接用safe-rm命令进行删除操作了,用法和参数和 rm 是一样的,不过还没有替换为 rm

    2、替换 safe-rm 为系统默认的 rm 命令

    做一个 rm 命令的符号链接,之后执行 rm 命令就相当于执行 safe-rm

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

    设置环境变量,要保证/usr/local/bin在其他变量路径前面

    先查看当前变量的顺序,可以看到/usr/local/bin没有在其他路径的最前面:

    [root@localhost /]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    修改编辑配置文件/etc/profile,添加下面一行

    PATH=/usr/local/bin:$PATH

    保存后,重启整个服务器,使配置生效;重启后,用 rm 命令删除,就相当执行的 safe-rm 命令了。

    3、设置路径黑名单

    创建/etc/safe-rm.conf文件,将重要文件或者目录的完整路径输入进去保存就可以了,每条以回车分隔。

    [root@localhost /]# cat /etc/safe-rm.conf 
    /opt/test
    /

    我这里加了2个路径,一个根目录,一个/opt/test目录。

    好了,到这里就完成了,执行 rm -rf /  rm -rf /opt/test 将不会删除其目录,会提示跳过删除(最好先找个测试目录进行实验,别弄不好成灾难了....)。
    QQ截图20171124105550
    总结:其实,只要用点心,仔细一些,误操作的几率还是比较少的;有句话说的好,刀可以杀猪,也可以杀人,关键在于拿刀的人...

    展开全文
  • linux下防止rm-rf /处理

    2020-02-16 17:44:09
    很不幸,之所以要写这篇文章。是因为自己尝过其中的痛。不过还好只是在自己虚拟机上误删。...3、用rm -rfi 代替rm -rf ,给自己多一步后悔的空间。 4、设置 文件权限。 我们在使用中绝大部分要删除文...

    很不幸,之所以要写这篇文章。是因为自己尝过其中的痛。不过还好只是在自己虚拟机上误删。为了防止以上事情的再次发生,写一下我现在处理方式。

    现在网上的处理方案主要是:
    1、将删除改为mv命令,然后再去回收站清除文件。
    2、用afe-rm代替rm,设置部分白名单,减小误删时候损失程度。
    3、用rm -rfi 代替rm -rf ,给自己多一步后悔的空间。
    4、设置 文件权限。

    我们在使用中绝大部分要删除文件,为机器腾空 空间。只要不是误删 一些特别重要的内容还好,我一般选择 的是 2 和3 结合使用。当然这种情况的恢复比起第一种方案来说,要差一些。具体选择哪种方案,需要根据自己的使用场景衡量。

    这里简单介绍一下 2和3的处理方案:

    第二种方案:
    1.下载safe-rm软件:

    //safe-rm下载地址: 
    https://launchpad.net/safe-rm
    //通过命令:
    wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz
    

    2、解压,复制文件到对应地方

    //解压
    tar -zxvf safe-rm-0.12.tar.gz 
    //进入目录
    cd safe-rm-0.12
    //复制safe-rm 文件到 /usr/local/bin
    cp safe-rm /usr/local/bin/
    

    3、用safe-rm 代替 rm

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

    4、添加环境变量

    vi /etc/profile 
    增加一条:
    export PATH=/usr/local/bin:$PATH
    //使环境变量生效
    source /etc/profile
    

    5、配置防止误删的名单

    cd /usr/local/bin
    vi safe-rm
    

    在这个地方配置防止删除目录

    my %default_protected_dirs = (
        '/bin'               => 1,
        '/boot'              => 1,
        '/dev'               => 1,
        '/etc'               => 1,
        '/home'              => 1,
        '/initrd'            => 1,
        '/lib'               => 1,
        '/lib32'             => 1,
        '/lib64'             => 1,
        '/proc'              => 1,
        '/root'              => 1,
        '/sbin'              => 1,
        '/sys'               => 1,
        '/usr'               => 1,
        '/usr/bin'           => 1,
        '/usr/include'       => 1,
        '/usr/lib'           => 1,
        '/usr/local'         => 1,
        '/usr/local/bin'     => 1,
        '/usr/local/include' => 1,
        '/usr/local/sbin'    => 1,
        '/usr/local/share'   => 1,
        );
    

    在配置文件增加

    ‘/usr/local/rm_test' => 1,
    
    

    在这里插入图片描述

    第三种方案:
    删除的时候都用 rm -rfi 戴特rm -rf
    在这里插入图片描述

    我建议 二三方案同时使用,给自己一次反悔的机会。

    展开全文
  • 看过一篇文章,讲述了rm-rf的一些惨案,并且引出了一些处理方式,看了很多的博客,总结一些方式方法; 本文主要解决命令误删除的情况 解决方案一:结合windows思想进行创建回收站,将命令改为mv移动,清除回收站...

    看过一篇文章,讲述了rm-rf的一些惨案,并且引出了一些处理方式,看了很多的博客,总结一些方式方法;
    本文主要解决命令误删除的情况

    解决方案一:结合windows思想进行创建回收站,将命令改为mv移动,清除回收站的时候进行实际rm-rf但是也只是清除回收站内的文件; 解决方案二:设置权限以及用户,对文件权限进行控制,并进行设置;
    解决方案三:整体配置借助safe-rm插件进行设置白名单进行设置;

    注:以上情况,博主个人都有进行设置,个人感觉第三种比较好,不用考虑第二种的问题,不用考虑第一种的后续清除回收站,但是相比较的话不如第一种可召回文件,不如第二种的可进行详细的权限设置。当然最后还是看自己的设置吧。

    第三种方式:都在root账号下进行设置就好,root为超级管理员

    • 1.下载safe-rm软件:

      safe-rm下载地址: https://launchpad.net/safe-rm
      命令 wget -c https://launchpadlibrarian.net/188958703/safe-rm-0.12.tar.gz

    • 2.解压文件,拷贝safe-rm到/usr/local/bin/目录下

      tar zxvf safe-rm-0.12.tar.gz
      cp safe-rm /usr/local/bin/
      这是为了让替换你的rm文件夹

    • 3.接下来会有一些配置上的不同,有的人会进行一些环境变量的设置,你可以看看别人怎么处理的,这里不多说,这种会有一个添加用户的useradd默认指定的一些目录是不生效的
      默认在/usr/local/bin/safe-rm里面指定了一些目录是无法删除的,可以vi路径打开看看:
      ‘/boot’ => 1,
      ‘/etc’ => 1,
      ‘/home’ => 1

    博主没有进行配置文件处理,而是在safe-rm的/etc/safe-rm.conf中指定要保护的目录,配置文件默认无,需要创建,路径如下:
    /etc/safe-rm.conf
    注释:在root的~/.config/safe-rm也有配置,可以不创建以上的,直接在这里写也是可以的
    上面分别为全局和用户的保护文件列表,只需要将重要文件或者目录的完整路径输入进去就可以了,每条以回车分隔。例如,在 /etc/safe-rm.conf 中写直接粘上这些,再拓展自己的一些就好:
    /
    /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
    以上是原有的,现在在里面加一个以下 的,这是博主进行了上面配置的第一种自己创建配置文件生成的这种,不想被删除,设置了自己不删除自己
    /etc/safe-rm.conf

    • 4**.建立软连接:**

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

    类似这种格式继续向下添加即可
    例如:在root下添加一个testone目录,在这里直接写一个/root/testone
    在我们删除时候:rm -rf /root/testone
    safe-rm: skipping /root/testone
    当然还有个小问题,这里也适用于一些通配,比如我写的不能删除testone但是testone里面的能不能删除呢,答案是能删除的,所以就要再设置/root/testone/*就好了
    最后:非常欢迎小伙伴进行交流,交流是人进步的阶梯!,感觉还行的话右上角小手那点赞交流支持下吧~

    展开全文
  • 1.下载安装safe-rm: yum -y install wget wget ...tar xf safe-rm-0.12.tar.gz mv safe-rm-0.12 /usr/local/safe-rm cd /usr/local/safe-rm mkdir bin cp sa...

    1.下载安装safe-rm:
    yum -y install wget
    wget https://launchpadlibrarian.net/188958703/safe-rm-0.12.tar.gz
    tar xf safe-rm-0.12.tar.gz
    mv safe-rm-0.12 /usr/local/safe-rm
    cd /usr/local/safe-rm
    mkdir bin
    cp safe-rm /bin/rm

    2.配置环境变量:
    vim /etc/profile
    #safe-rm
    export RM_HOME=/usr/local/safe-rm
    export PATH=RMHOME/bin:RM_HOME/bin:PATH

    source /etc/profile

    在这里插入图片描述
    which rm
    alias rm=‘rm -i’
    /usr/local/safe-rm/bin/rm

    此时可以看到rm命令已经是我们安装的safe-rm了

    3.配置我们需要避免删除的文件:
    vim /etc/safe-rm.conf
    /*
    /tmp/1.txt

    4.测试删除操作:
    touch /tmp/1.txt /tmp/2.txt
    mkdir /tmp/d
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到只有我们加进/etc/safe-rm.conf的文件路径或者目录不会被删除,未加进的文件依旧可以正常删除。

    5.说明:
    如果加进了/etc/safe-rm.conf的文件路径,我们依然想删除他怎么办,那就直接使用/bin/rm -rf /tmp/1.txt ,但是删除前一定要三思,毕竟数据恢复比较麻烦。

    展开全文
  • rm -rf 不可取, 尽量find+rm -rf 尽量cd && rm -rf * 加上逻辑 cd /tmp/res # <---如果这个没有,则就会出问题.... rm -rf * # 所以,一般就用普通用户执行命令 cd /tmp/res && rm -rf #!/bin/ba.....
  • 对于一个linux新手,敲错指令是常有的事情,智者千虑必有一失,即使对于一个老司机来说,也难免会有操作失误的时候,而误删导致的后果往往是无法弥补的。与其在误删数据后懊悔,不如趁早寻求方法避免这种错误的发生...
  • 为什么不能使用rm -rf /* linuxrm表示删除 rm -rf表示强制删除, /表示根目录,如果使用rm -rf /*就会将系统中所有数据删除,造成灾难性后果
  • Linux防止“rm -rf /”误操作的方法2014年06月07日--preserve-root 选项像freebsd, GNU/Linux 这样的系统都有文件系统根目录保护机制,如果没有指定--no-preserve-root参数,GNU rm 将拒绝执行rm -rf /这样致命的...
  • 操作说明: 为了防止在linux下执行操作的时候误操作rm -rf /,或者rm -rf 一些比较重要的目录,我们做以下操作来限制rm的删除 1、下载源码安装包 ...
  • 1、rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用。所删除的文件,一般都不能恢复! 2、rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息不会提示确认信息。 3、rm 命令删除...
  • rm -rf xxx 删除后,才得知其中一个文件是另外一个产品的静态文件资源。当时吓得一头汗。虽然领导并没有责怪自己,但是自己心里梨山大啊。 庆幸阿里云服务器有快照功能,可以恢复删除的数据。虽然是虚惊一场,不过...
  • 1.下载safe-rm软件: safe-rm下载地址:https://launchpad.net/safe-rm命令 wget -chttps://launchpadlibrarian.net/188958703/safe-rm-...2.解压:tar xfsafe-rm-0.12.tar.gz 3.备份原有rm:mv/usr/local/bin/rm/...
  • 用的是上篇的靶机,所以不用担心会怎样,删库了也没事 输入sudo rm -rf /* help命令还在 ls、cd、sudo 这些都没了 这就是rm -f /*后的结果,请勿在生产环境尝试!!! ...
  • rm -rf 慎用 命令敲得多了,常在河边走,难免会湿鞋 昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了 几天心血全木有了,靠,死的心都有了 经百度,google以及尝试无果,哎,这个以后再研究...
  • 两条Linux删数据跑路命令 rm rm -rf / 无提示循环删除根目录,,删除存在被恢复的可能 dd dd if=/dev/urandom of=/dev/hda1 随机填写数据到相应分区,直到填满为止。重写后的分区无法挂载,并且创建和拷贝...
  • 作者简介:刘晨,网名bisal,Oracle技术爱好者,CSDN和ITPub专家博主,拥有Oracle 10g/11g OCP、Oracle 11g OCM、EXIN D...
  • Linux 中,有一个专门的命令 rm,可用于完成所有删除相关的操作。在本文中,我们将用些容易理解的例子来讨论这个命令的基本使用。-- Himanshu Arora本文导航◈ Linux rm 命令概述05%◈ Q1. 如何用 rm 命令删除...
1 2 3 4 5 ... 20
收藏数 8,585
精华内容 3,434
关键字:

-rf linux 禁止rm