加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2022-10-12 11:16:30 所属栏目:Linux 来源:
导读:  事情是这样的

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

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

  linux 拖库_网易 拖库_mssql拖库
  事情是这样的
 
  想必大家都听说过一个笑话:一个程序员去公司面试,面试官让他随便写个shell脚本看看
 
  结果程序员在公司机器上写了个简单的 rm -rf /*
 
  linux 拖库_网易 拖库_mssql拖库
 
  今天博主好奇到无聊,想看看到底会有什么效果呢。
 
  就拿了一台不用的废弃虚拟机系统玩了一把。
 
  在这里跟大家,汇报一下战果:
 
  mssql拖库_网易 拖库_linux 拖库
 
  大家一定注意谨慎:玩完之后,绝大部分数据无法恢复,系统会基本完全崩溃状态,
 
  建议在废弃的机器上玩可以,正式环境千万不要,另外大家写删除命令的时候,也一定要小心
 
  Linux机器准备
 
  首先找了台好久不用的虚拟机,回到根目录下,直接执行rm -rf * ;
 
  网易 拖库_mssql拖库_linux 拖库
 
  然后就开始看到系统开始从根目录开始删除
 
  开始报一些无法删除的错误
 
  mssql拖库_网易 拖库_linux 拖库
 
  因为一些正在运转的misc net等硬件文件 无法删除
 
  当我们误操作的时候,发现这些rm: cannot remove...,就赶紧中止还有得救
 
  相关路径解读
 
  boot:启动路径,部分文件,正在运行删不掉。
 
  misc net:硬件相关运行中,不允许删除。
 
  dev/shm:
 
  /dev:目录下一般都是一些设备硬件文件,例如磁盘、内存、摄像头、网卡等等。
 
  /dev/shm: 这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。
 
  其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)
 
  dev/pts/ptmx
 
  ptmx 虚拟终端相关文件 系统不让删除
 
  Linux终端:
 
  另外sys目录下的一些系统文件包括,
 
  挂载的磁盘信息等,root也是没有权限删除的linux 拖库,
 
  其余的文件夹 opt mnt home root等等 统统被删除
 
  网易 拖库_linux 拖库_mssql拖库
 
  Linux挣扎了一下:sys/block的块设备不让删除、
 
  nfs文件系统的缓存、挂载记录、锁等不让删除
 
  ==============
 
  rm -rf /* 运行完之后
 
  删除完成之后,我们在根目录下看一下:
 
  ls 命令已经没有了,这是因为存放命令的/bin目录下的所有二进制命令文件都被删除了,
 
  包括 yum pwd 等等统统没有了,只有cd命令还在,
 
  这是因为cd命令并不在/bin下
 
  whereis cd :查看一下,cd在/usr/bin目录下
 
  linux 拖库_mssql拖库_网易 拖库
 
  可以看到根目录下 只剩下/boot的启动文件夹。
 
  硬件相关的misc net dev
 
  sys系统相关文件夹
 
  这是给我们下次启动时 进行启动牵引,牵引到grub界面 之后,由
 
  于系统中所有的东西都被我们删除了,所以就卡死在grub界面 无法进内核。
 
  网易 拖库_mssql拖库_linux 拖库
 
  抢救及预防措施
 
  这个命令是极其危险的,所以一旦误操作
 
  1、中止命令
 
  首先,在意识到命令执行时,立即按Ctrl+C 终止命令。尽可能的保护系统文件。
 
  2、不要退出当前shell,不要重启
 
  因为,我们不清楚,到底有哪些文件被删除了。
 
  我们总会下意识的觉得,重启下就好了。这个时候千万不要重启,因为一重启,你可能无法再进入系统,连最后抢救的机会都没有了。
 
  3、系统文件夹迁移
 
  系统根目录下,大体就是这几个文件夹。
 
  网易 拖库_linux 拖库_mssql拖库
 
  像/bin /sbin :主要是存储一些命令的文件夹。如果被删除了,我们可以通过从其他的服务器,将/bin目录,压缩,拷到当前服务器解压,进行替换。
 
  4、系统快照
 
  这是一个非常实用的方法。我们可以定时做系统快照,例如:每天凌晨2点,对系统做一个快照;也可以每逢比较重大的系统更新或者服务搭建之后,做一个快照。
 
  这样,当我们误操作之后,就会有一个回退的备份。
 
  5、命令重写
 
  可以将rm -rf 重写,构造一个回收站,可以参考博主的这篇博文:
 
  “你的rm -rf /*,我接盘了“——刚毕业的运维小姐姐总误删文件,我送了她一个命令行版 “回收站”
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!