• 防止rm误删数据


    背景:常在河边走,哪有不湿鞋。为了防止在linux服务器执行了"rm -rf"误删除重要数据。

    下面提供如下选择方案:

    1、建立回收站机制.

    当你在删除数据的时候,并不是真的在删除数据,而是将文件移动到一个特定的目录中。相当于看似执行的是 rm 命令实际上执行的是 mv 命令。

    1.1 下载下面脚本,将文件复制粘贴到~/.bashrc的下面

    https://files.cnblogs.com/files/SyXk/rm%E5%9B%9E%E6%94%B6%E7%AB%99%E8%84%9A%E6%9C%AC_trash.rar

    1.2 测试验证

    准备环境如下:

    验证结果如下:

    2、使用trash-cli工具

    trash-cli是一个使用 python 开发的软件包,包含 trash-put、restore-trash、trash-list、trash-empty、trash-rm等命令,我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。

    2.1 下载trash-cli安装包

    2.2 开始安装

    2.3 安装成功后,系统上就会有以下工具

    功能说明:

    trash-put 将文件或目录移入回收站
    trash-empty 清空回收站
    trash-list 列出回收站中的文件
    trash-restore 还原回收站中的文件
    trash-rm 删除回首站中的单个文件

    2.4 安装完毕后,进行如下配置。用trash-put替换rm命令

    2.5 测试验证

    删除测试:

    还原删除的文件

    备注:

    trash-put命令会把我们想要删除的文件移动到~/.local/share/Trash/files 中。

    相关信息记录在~/.local/share/Trash/info中。

     

    3、使用safe-rm工具

    safe-rm ,它具有 rm 命令的所有功能,不过 safe-rm 命令可以设置路径黑名单,也就是说在黑名单中的目录或文件将不会被删除;我们把 rm 命令替换为 safe-rm ,之后执行 rm 命令也就相当于执行 safe-rm 命令,也就不会误删除黑名单中的目录或文件了。注意一些脚本中使用完全路径/bin/rm则不会受此影响。

    3.1 下载safe-rm安装包

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

    tar -xf safe-rm-0.12.tar.gz

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

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

    做一个 rm 命令的符号链接,之后执行 rm 命令就相当于执行 safe-rm
    设置环境变量,要保证/usr/local/bin在其他变量路径前面

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

    3.3 设置路径黑名单

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

    vim  /etc/safe-rm.conf
    /
    
    /bin
    
    /boot
    
    /dev
    
    /etc
    
    /home
    
    /lib
    
    /lib64
    
    /media
    
    /mnt
    
    /opt
    
    /proc
    
    /run
    
    /sbin
    
    /root
    
    /sbin
    
    /sys
    
    /srv
    
    /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

    3.4 测试验证

    说明:显示/bin/rm: missing operand,代表成功。如果不成功会显示"rm: missing operand"

    测试删除目录

    使用绝对路径:

    可见:但使用绝对路径/bin/rm时。文件已经都被删除。系统崩坏。

    4、使用chattr命令

    对于文件而言:

    chattr 操作符 属性 文件名

    操作符: + :给文件增加属性 - :去除文件属性

        性: a- 允许给文件追加内容 i- 保护模式(不允许删除或修改)

    给文件增加+i属性.

    可见:文件已经不允许进行删除与修改.

    对于目录而言:

    给目录增加+i属性.

    可见:目录已经不允许进行删除与修改.

    5、服务器定期做快照.

    6、做好账号权限管理.

    只允许哪些人有较高权限,而不允许哪些人执行哪些操作(如:不允许执行rm)。

    7、部署堡垒机jumpserver

    其他

    问题1:ImportError:No module named psutil解决方案:

    https://blog.51cto.com/chenql/2126694

    问题2:pip安装软件时出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build*的解决方案

    https://blog.csdn.net/qq_37110648/article/details/86982877

    作者:岁月星空
    出处:https://www.cnblogs.com/syxk
    ^_^如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,您的“推荐” 将是我最大的写作动力^_^。
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Hashset 常用的方法
    List新增的方法
    关于集合
    转载关于sql 注入
    可变参数和preparestatement 结合使用
    数据库连接 中的测试事例,包括工具类,配置文件,查询,增加,以及查询后返回对象
    在静态方法中不能调用非静态变量,但getclass()可以换个形式来调用
    用一个对象中读出信息进行出入的代码片段
    新建maven项目更改 web版本
    elasticsearch 局部更新
  • 原文地址:https://www.cnblogs.com/SyXk/p/14452028.html
Copyright © 2020-2023  润新知