当前位置: 首页 > Linux

【程序猿硬核科普】由最近的删库事件联想到的一些看法 - 更改rm命令实现Linux下的回收站机制

时间:2023-04-07 01:19:01 Linux

【编程硬核科普】近期数据库删除事件相关的一些看法|Linux下改rm命令实现回收站机制吃瓜,同时阅读了一些DBA相关知识,分享给大家,写个脚本改rm命令实现Linux下回收站机制。数据安全体系建设中如何有效避免和减少类似事件的影响?以下是安全体系建设的几点建议:1、账户分等级、权限、系统。比如研发人员不能自己操作数据库。通过页面级控制台更新数据项,进行简单的运维操作。对某些敏感表或数据项的操作需要主管批准。2、生产环境管理体系确保每一步操作都得到落实和规范,纳入监督。例如,在访问生产环境时,一般技术人员只能使用指定的机器和账号登录,部分登录需要经过主管审批。3、机房管理系统4、备份机制不同层次、不同维度的备份机制,尤其是核心数据,至少保证2~3个异机异地备份。5、数据快照机制强制数据快照,普通人员无法直接修改或干预。6、实时监控报警。比如利用大数据和人工智能实现智能风控。当涉及敏感数据操作频繁时,给出告警、暂停(5-30分钟)、审批流程等风控策略。7、安全意识和警示培训不定期进行宣传警示培训,特别是真实案例的展示。8、在线安全测评由公司自主进行,以多道单选题和多项选择题的形式对全体员工进行在线考试。这种制度其实在一些大公司里是很常见的,比如几个知名的互联网巨头。作者:何定远链接:https://www.zhihu.com/questio...来源:知乎实现linux下回收站机制大致思路:写一个脚本代替rm命令,作用是移动文件执行rm命令时到rm命令回收站(指定文件夹),然后到.bashrc文件中设置别名代替rm命令,然后设置定时任务定时清理回收站。.bashrc文件的作用:主要保存了个人的一些个性化设置,比如命令别名、路径等。也就是说,在同一台服务器上,只有某个用户的个性化设置是相关的。每次修改.bashrc后,使用source~/.bashrc(或.~/.bashrc)立即加载修改的设置,使之生效。通常,在.bash_profile文件中显式调用.bashrc。登录linux启动bash时,会先读取~/.bash_profile文件,所以会执行~/.bashrc,用户的个性化设置才会生效。1.创建一个隐藏的回收站文件夹mkdir~/.recycleBin2.写一个回收站脚本recycleBin.sh#!/bin/bashif[[$1!='/'&&$1]];thenmv$1~/.recycleBin/echo'['$1']放入回收站!';elseecho'false:cannotrm/';fi赋予脚本可执行权限chmoda+xrecycleBin.sh3,实现rm命令和recycleBin.sh脚本绑定vim~/.bashrcalias命令,设置命令的别名,相当于执行rm。实际执行是recycleBin.sh,输入source~/.bashrc命令,让别名立即生效。那我们测试一下,试试用rm删除一个文件,然后去回收站文件夹看看4.写一个crontab任务,每周一清理回收站里7天前的文件03**1找到~/.recycleBin/-typef-mtime+7-execrm-rf{}\;>/dev/null2>&1alias展开小知识:细心的读者可能已经发现,在自动清理回收站文件的命令中:使用了rm命令,这不是我们更改了移动文件的命令吗,以及是不是也能实现清理回收站的功能呢?答案是:是的!因为别名扩展在交互模式下默认启用,在脚本模式下默认禁用。如果需要在脚本中使用别名,需要先执行:source~/.bash_rc检查是否默认在shell脚本中启用别名扩展:shoptexpand_aliases在shell中启用别名扩展:shopt-sexpand_aliases*使用safe-rm代替unsaferm*如果觉得上面的步骤比较繁琐,有一个简单的方法可以实现上面的基本功能并安装safe-rm,步骤如下:1.下载官网download地址:https://launchpad.net/safe-rm2。安装①解压safe-rmtar-zxfsafe-rm-0.12.tar.gz②将safe-rm复制到/usr/local/bin目录下cpsafe-rm-0.12/safe-rm/usr/local/bin/rm3.添加环境变量Vim/etc/profile在最后一行添加PATH=/usr/local/bin:$PATH使其在保存source/etc/profile4后生效。配置配置路径黑名单vim/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/源代码/var5。testtestdeletetest文件夹mkdir/root/test显示无法删除safe-rm:skipping/root/test参考文章1.微盟系统被员工删除。这有多严重?何定远的回答-知乎https://www.zhihu.com/questio...2.Linux下的回收站机制:https://cloud.tencent.com/dev...3.Linux终端命令rm删除的文件进入回收站实现方法:https://www.iteye.com/blog/ye...祝你工作顺利,加油。【程序员硬核科普】系列是晚上闲暇时间半小时到一小时即可完成的科普文章。不懂的可以自己搜索资料,学习后做笔记,旨在克服拖延症。文中可能有很多疏漏之处,敬请指正!浩编码公众号Java、数据库、前端相关【程序员硬核科普】系列2020访谈宝典、Linux教程长按识别二维码关注▼过往精彩回顾▼【程序员硬核科普】Linux下Shell编程杂记【编程硬核科普】推荐一款非常好用的终端工具XShell及其使用教程Linux命令Crontab-定时任务2020Java面试宝典--JavaSE基础点个赞,点个赞