Wie weit kannst du mit rm -rf / als root gehen?

23

Wenn Sie root sind und Probleme haben

rm -rf / 

Wie weit kann der Befehl dann gehen? Können Sie Daten aus einer solchen Aktion wiederherstellen? Würden die laufenden Prozesse auch nach dem Verschwinden der Binärdateien noch aktiv sein? Was würde es brauchen, um dieselbe physische Maschine erneut zu starten? Welche Dateien müssen Sie wiederherstellen, um dies zu erreichen?

Ich könnte dies auf einer VM ausprobieren und sehen, aber ich möchte wissen, was zu erwarten ist, wenn ich dies tue.

Sudipta Chatterjee
quelle
3
Duplikat von: superuser.com/questions/312769/…
Stéphane Gimenez
1
@Ste Stimmt, aber solange es nicht kopiert / eingefügt wird, lassen wir es im Allgemeinen los, da wir einige Überschneidungen mit anderen Websites haben
Michael Mrozek

Antworten:

21

Dieser Befehl hat zumindest auf dem von mir verwendeten Betriebssystem (Solaris), mit dem diese Sicherheitsfunktion zum ersten Mal implementiert wurde, keine Auswirkung:

# rm -rf /
rm of / is not allowed

Unter anderen * nix-Betriebssystemen, insbesondere der Linux-Familie, müssen Sie die --no-preserve-rootOption hinzufügen , damit der Befehl ausgeführt (oder zumindest gestartet) werden kann , wenn ein ausreichend aktueller Gnu rm bereitgestellt wird .

Wie weit dieser Befehl gehen würde, ist undefiniert. Es hängt von vielen mehr oder weniger unvorhersehbaren Ereignissen ab. Im Allgemeinen können Prozesse auch ausgeführt werden, nachdem ihre Binärdateien entfernt wurden.

jlliagre
quelle
5
Ich habe dir zuerst nicht geglaubt, aber jetzt ist es da . Es ist schwer zu glauben, dass es bis 2005 (Sun / BSD) und 2006 (GNU) gedauert hat, um diesen schrecklichen Fehler zu verhindern.
Amphetamachine
3
Sie können immer noch verwenden rm -rf /*, um alles zu löschen
Felix Yan
1
In der Tat, aber in diesem Fall gibt es nichts, was rm (leicht) tun kann, da die Dateierweiterung bereits von der Shell durchgeführt wird, bevor rm aufgerufen wird.
Juli
4

Denken Sie auch bei der hervorragenden Antwort von jlliagre daran, dass dies immer noch eine ziemlich gefährliche Sache ist. Überprüfen Sie immer , wo Sie sind, bevor Sie Dinge wie tun rm -rf. Es wäre katastrophal, wenn Sie dies beispielsweise rm -rf *im Verzeichnis / usr tun würden .

In Bezug auf den Rest Ihrer Fragen hängt das, was Sie wiederherstellen können, stark von Ihren Sicherungsprozeduren ab. In den meisten * nix-Systemen gibt es keine einfache Möglichkeit, Dateien und Verzeichnisse nach dem Löschen wiederherzustellen. Im Gegensatz zu den alten DOS-Zeiten, in denen sich Dateien nach dem Löschen häufig noch auf der Festplatte befanden, führen die meisten Systeme heutzutage Dinge aus, die die Wiederherstellung sehr schwierig machen. Dies ist einer der Gründe, warum Datenwiederherstellungsdienste so teuer sind.

Wenn Sie eine VM verwenden, empfehle ich, zumindest von Zeit zu Zeit Snapshots zu erstellen. Aber nichts kann nach einem guten Backup-Plan schlagen.

Oldtimer
quelle
2

Wie einige Leute sagten, können Sie immer noch verwenden sudo rm -rf /*, um alles zu entfernen. Ohne das Sternchen funktioniert das auch unter OS X. Jemand hat ein Video über die Zerstörung von OS X Yosemite wie dieses gemacht, und ich bin mir sicher, dass Linux-basierte Betriebssysteme in etwa dasselbe erleben werden.

Die Dinge beginnen langsam, nicht mehr zu reagieren. Ich glaube nicht, dass alles gelöscht wurde, da das Terminal während des Vorgangs eingefroren ist, aber es hat gereicht, um das Ganze einzufrieren und einen Neustart zu erzwingen.

Der Versuch eines Neustarts führt zu einem Einzelbenutzermodus wie dem Startbildschirm mit Fehlern.

TheBro21
quelle
1
Wenn das etwas Trost geben kann, sudo rm -rf /*würden Sie die versteckten Dateien und Verzeichnisse in nicht löschen /. Dateien, die von einem anderen Einhängepunkt maskiert werden, Dateien auf schreibgeschützten Dateisystemen oder Pseudodateisystemen, unveränderliche Dateien oder Einhängepunkte können ebenfalls nicht gelöscht werden.
Stéphane Chazelas
@ StéphaneChazelas Das wurde auch im Footage angezeigt. Beim Lesen des Dateisystems sind Fehler aufgetreten. Obwohl nicht alles gelöscht wurde, reichte es aus, den Systemstart (nicht EFI) einzufrieren und zu zerstören
TheBro21
2

Ich habe es gerade mit Ubuntu 16 und VMware Workstation versucht und mit der Option no-preserve-root die gesamte Festplatte meines laufenden Linux-Systems gelöscht. danach wurde die gesamte vmware workstation app unbrauchbar instabil und es war unmöglich, die virtuelle maschine auszuschalten oder von der anwendung zurückzusetzen. Das Beenden des VMX wurde abgelehnt, nur ein Neustart des Hosts funktionierte danach!

Bedrohung
quelle
Nett! :) Dies ist, was ich gehofft habe, von jemandem zu hören.
Sudipta Chatterjee
1

Man kann sein System nicht einfach zerstören, indem man es rm -rf /als root ausgibt. Zu Beginn wird der Befehl im ausfallsicheren Modus ausgegeben, wodurch die Verwendung von rmon eingeschränkt wird. Das ausgeführte System lässt /jedoch selbst --no-preserve-rootals Argument nicht zu, dass ausgeführte Prozesse von der Festplatte entfernt werden. Der Rest der Programme und Dateien wird jedoch entfernt, sodass ein unbrauchbares System mit (fast) keinen Programmen mehr ausgeführt werden kann! Bitte überprüfen Sie die hier geteerten Screenshots. Der Befehl wurde in Arch Linux in Virtual Box ausgegeben: http://bit.ly/q9CsA4

Abhisek De
quelle
Können Sie die Bilder irgendwo hochladen? Das Herunterladen eines Tar, das Aufheben des Tarings und das Anzeigen aller Dateien wird von den meisten Menschen nicht ausgeführt. Oh und URL-
Kürzungen
3
Sie haben geschrieben: "Das laufende System erlaubt nicht, laufende Prozesse von der Festplatte zu entfernen". Für * nix ist das falsch. Diese Einschränkung besteht unter Windows, aber Sie können Dateien unter Unix / Linux entfernen (Verknüpfung aufheben), auch wenn sie ausgeführt werden.
Juli
2
"... das laufende System wird es nicht erlauben, laufende Prozesse von der Festplatte zu entfernen ..." Dies ist leider nicht wahr - die Dateien, die in Ihrem Beispiel nicht gelöscht werden können, sind überhaupt keine wirklichen "Dateien" - Sie bieten Zugriff auf Blockgeräte, Kernelmodule und andere Systeminternale. Die Ausführung eines Löschvorgangs macht keinen Sinn und kann auch nicht als ausgeführt werden root.
Nathan Osman
Hier sind die Fotos von Abhisek geteilt in Online - Galerie: min.us/mSQcqHGQA min.us/moyPvnYOw (auf Wunsch von TheLQ)
Artem Pelenitsyn