【删库跑路】—Linux系统自杀实验 rm -rf /* 及如何抢救和预防

举报
LexSaints 发表于 2021/05/13 16:40:17 2021/05/13
【摘要】 事情是这样的想必大家都听说过一个笑话:一个程序员去公司面试,面试官让他随便写个shell脚本看看结果程序员在公司机器上写了个简单的 rm -rf  /* ​今天博主好奇到无聊,想看看到底会有什么效果呢。就拿了一台不用的废弃虚拟机系统玩了一把。在这里跟大家,汇报一下战果:​大家一定注意谨慎:玩完之后,绝大部分数据无法恢复,系统会基本完全崩溃状态,建议在废弃的机器上玩可以,正式环境千万不要,另外...

事情是这样的

想必大家都听说过一个笑话:一个程序员去公司面试,面试官让他随便写个shell脚本看看

结果程序员在公司机器上写了个简单的 rm -rf  /* 


今天博主好奇到无聊,想看看到底会有什么效果呢。

就拿了一台不用的废弃虚拟机系统玩了一把。

在这里跟大家,汇报一下战果:

大家一定注意谨慎:玩完之后,绝大部分数据无法恢复,系统会基本完全崩溃状态,

建议在废弃的机器上玩可以,正式环境千万不要,另外大家写删除命令的时候,也一定要小心

Linux机器准备

首先找了台好久不用的虚拟机,回到根目录下,直接执行rm -rf * ;

然后就开始看到系统开始从根目录开始删除

开始报一些无法删除的错误

因为一些正在运转的misc net等硬件文件 无法删除

当我们误操作的时候,发现这些rm: cannot remove...,就赶紧中止还有得救

相关路径解读

boot:启动路径,部分文件,正在运行删不掉。

misc net:硬件相关运行中,不允许删除。

dev/shm:

/dev:目录下一般都是一些设备硬件文件,例如磁盘、内存、摄像头、网卡等等。
/dev/shm: 这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。

其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)

dev/pts/ptmx

ptmx 虚拟终端相关文件 系统不让删除


Linux终端:

另外sys目录下的一些系统文件包括,

挂载的磁盘信息等,root也是没有权限删除的,

其余的文件夹 opt mnt home root等等 统统被删除

Linux挣扎了一下:sys/block的块设备不让删除、

nfs文件系统的缓存、挂载记录、锁等不让删除

==============

rm -rf /* 运行完之后

删除完成之后,我们在根目录下看一下:

ls 命令已经没有了,这是因为存放命令的/bin目录下的所有二进制命令文件都被删除了,

包括 yum pwd 等等统统没有了,只有cd命令还在,

这是因为cd命令并不在/bin下

whereis cd :查看一下,cd在/usr/bin目录下

可以看到根目录下 只剩下/boot的启动文件夹。

硬件相关的misc net dev

sys系统相关文件夹

这是给我们下次启动时 进行启动牵引,牵引到grub界面 之后,由

于系统中所有的东西都被我们删除了,所以就卡死在grub界面 无法进内核。


抢救及预防措施

这个命令是极其危险的,所以一旦误操作

1、中止命令

首先,在意识到命令执行时,立即按Ctrl+C 终止命令。尽可能的保护系统文件。

2、不要退出当前shell,不要重启

因为,我们不清楚,到底有哪些文件被删除了。

我们总会下意识的觉得,重启下就好了。这个时候千万不要重启,因为一重启,你可能无法再进入系统,连最后抢救的机会都没有了。

3、系统文件夹迁移

系统根目录下,大体就是这几个文件夹。

像/bin /sbin :主要是存储一些命令的文件夹。如果被删除了,我们可以通过从其他的服务器,将/bin目录,压缩,拷到当前服务器解压,进行替换。

4、系统快照

这是一个非常实用的方法。我们可以定时做系统快照,例如:每天凌晨2点,对系统做一个快照;也可以每逢比较重大的系统更新或者服务搭建之后,做一个快照。

这样,当我们误操作之后,就会有一个回退的备份。

5、命令重写

可以将rm -rf 重写,构造一个回收站,可以参考博主的这篇博文:

“你的rm -rf /*,我接盘了“——刚毕业的运维小姐姐总误删文件,我送了她一个命令行版 “回收站”

推荐阅读

pygame系列文章

一起来学pygame吧 游戏开发30例(开篇词)——环境搭建+游戏效果展示

一起来学pygame吧 游戏开发30例(一)——迷宫小游戏

一起来学pygame吧 游戏开发30例(二)——塔防游戏

一起来学pygame吧 游戏开发30例(三)——射击外星人小游戏

一起来学pygame吧 游戏开发30例(四)——俄罗斯方块小游戏

一起来学pygame吧 游戏开发30例(五)——消消乐 小游戏

一起来学pygame吧 游戏开发30例(六)——高山滑雪 小游戏

python及安全系列

【渗透测试实战】具体案例——讲讲SQL注入攻击是怎么回事?

python你TM太皮了——区区30行代码就能记录键盘的一举一动

女神相册密码忘记了,我只用Python写了20行代码~~~

如何用ssh工具连接前台小姐姐的“小米手机”——雷总看了直呼内行!!!

叫你别随便重启Redis!!!怎么样,数据全丢了吧~~~

没错!python只需要一行代码!!!实现文件共享服务器!!!

Windows域控策略

Windows域策略设置 禁止客户端修改IP地址【全域策略生效】

Windows域控去掉密码强度策略 可以设置简单密码【全域策略生效】

Windows域控设置 10分钟自动锁屏的域策略 【全域策略生效】

渗透测试实战专栏

Windows AD/Exchange管理专栏

Linux高性能服务器搭建 

PowerShell自动化专栏

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。