如何防止root权限下rm误删(3种方法)

背景

很多情况下,为了方便,许多人喜欢使用rm -rf直接删除文件,这样很容易头脑一热就犯错,带来不可估量的后果,“删库跑路”?,你跑得掉再说

建议养成良好习惯,减少使用rm,特别是在生产环境中,一旦敲下去,准备走人吧

下面主要从预防,操作习惯和遇到rm删除重要东西如何尽可能恢复

预防措施

1.操作习惯:

1.少用rm或者基本不用
2.可以建立“垃圾箱”目录,使用定时任务crontab进行定时清除该目录下的文件

2.容灾

备份+异地容灾策略

3.权限

 权限方面应该多多重视
 1.重要的权限不应由一人管理,而是应该多人管理,使用前多人再三确认;
 2.对应职能,业务需求分发用户权限

出现rm删除重要文件时的解决方案

1.lsof(主讲)

lsof |grep  fileName

查看被删除的文件有无在使用过程中被删除的
由于rm删除的是硬链接个数,当链接为0时会清空,如果被程序内核等使用时,链接个数其实还有一个,此时文件还没有被真正删除!!

原理:

在Linux系统中,每个运行中的程序都有一个宿主进程彼此隔离,以/proc/进程号来体现(Linux本质上就是一个文件系统),比如:ls -l /proc/13067 查看进程PID为13067的进程信息;当程序运行时,操作系统会专门开辟一块内存区域,提供给当前进程使用,对于依赖的文件,操作系统会发放一个文件描述符,以便读写文件,当我们执行 rm -f 删除文件时,其实只是删除了文件的目录索引节点,对于文件系统不可见,但是对于打开它的进程依然可见,即仍然可以使用先前发放的文件描述符读写文件,正是利用这样的原理,所以我们可以使用I/O重定向的方式来恢复文件

查看被删除文件

ls -l /proc/4254/fd/7

查看文件描述

file /proc/4254/fd/
7
 
/proc/4254/fd/7: broken symbolic link to '/root/fileName (deleted)'

恢复:

cp /proc/4254/fd/7 NewfileName

2.ext3文件系统反删除利器ext3grep

用此方法前,重要的一点是,不要操作被删除文件的目录,一切都不要动,然后umount卸载目录所在硬盘,具体实战不一一赘述

3.extundelete工具

此方法也是不要动案发现场,具体实战也不一一赘述,如有需要,后续补充

总结

做前先问,不要使用rm,做个垃圾箱,养成好习惯,道路没有捷径,一当犯错,要最小程度减小损害

全部评论

相关推荐

冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务