以 root 身份使用 rm -rf / 可以走多远

以 root 身份使用 rm -rf / 可以走多远

如果你是root,并且你发出

rm -rf / 

那么这个命令能走多远呢?您可以从此类操作中恢复数据吗?即使二进制文件消失后,正在运行的进程仍然处于活动状态吗?怎样才能让同一台物理机再次启动?您需要恢复哪些文件才能实现此目的?

我可以在虚拟机上尝试一下,然后看看,但我想知道这样做的背后的理由。

答案1

此命令不执行任何操作,至少在我使用的操作系统 (Solaris) 上首次实现此安全功能:

# rm -rf /
rm of / is not allowed

在其他 *nix 上,尤其是 Linux 系列上,如果提供了足够新的 Gnu rm,则需要添加选项--no-preserve-root以使命令能够完成(或至少启动)。

该命令会执行多远尚未定义。这取决于大量或多或少不可预测的事件。一般来说,进程即使在其二进制文件被删除后也可以运行。

答案2

即使有 jlliagre 的出色回答,请记住这仍然是一件非常危险的事情。总是在执行类似操作之前,请仔细检查您所在的位置。例如,rm -rf如果您在 /usr 目录中执行此操作,则后果将不堪设想。rm -rf *

至于您的其余问题,您可以恢复的内容很大程度上取决于您的备份过程。在大多数 *nix 系统中,一旦文件和目录被删除,就没有简单的方法来恢复它们。与旧的 DOS 时代不同,在执行删除后文件通常仍在磁盘上,现在大多数系统都会执行使恢复非常困难的操作。这是数据恢复服务如此昂贵的原因之一。

如果您使用虚拟机,我建议至少时不时地进行快照。但没有什么比遵循良好的后备计划更好的了。

答案3

我刚刚尝试使用 Ubuntu 16 和 vmware 工作站,使用 no-preserve-root 选项,它擦除了我正在运行的 Linux 系统的整个磁盘。完成后,整个 vmware 工作站应用程序变得非常不稳定,甚至无法从应用程序关闭或重置虚拟机。杀死 vmx 被拒绝,之后只有主机重新启动才有效!

答案4

一个人不能通过rm -rf /以 root 身份发布来简单地破坏他/她的系统。最初,该命令将在故障安全模式下发出,这将限制rmon的使用/,但即使将其--no-preserve-root作为参数,正在运行的系统也将不允许从磁盘中删除正在运行的进程;但是,其余的程序和文件将被删除,留下一个无法使用的系统(几乎)没有程序可运行!请检查这里的截图,该命令是在 Virtual Box 中的 Arch Linux 中发出的:http://bit.ly/q9CsA4

相关内容