Ich habe mich oft gefragt, wie weit das System tatsächlich kommen wird, wenn Sie ausgeführt werden rm -rf /
. Ich bezweifle, dass das Betriebssystem sich selbst löschen kann (?)
Bonus Frage : Nachdem der Befehl ausgeführt wurde, wird rm
sich entfernt haben?
Update: Ich habe dies in einigen der wichtigsten Unix-Distributionen mit VirtualBox getestet und die Antworten beschreiben genau, was passiert. Wenn die richtigen Parameter angegeben wurden, entfernt rm alle physischen Daten auf der Disc. Ich bin jedoch auf einige Probleme gestoßen, wenn ich eine andere Version von rm als GNU verwendet habe. Ich glaube zum Beispiel, dass BusyBox eine eigene Version hat und Sie nicht so viel entfernen können, wie Sie möglicherweise könnten.
Diese Frage war eine Super User Frage der Woche .
Lesen Sie den Blog-Eintrag vom 7. Juli 2011, um weitere Informationen zu erhalten, oder reichen Sie Ihre eigene Frage der Woche ein.
quelle
sudo rm -rf /
tinycore / microcore Linux ausprobiert und es scheint, dass das Betriebssystem mehrere Verzeichnisse (/ sys und andere) vor dem Löschen schützt.rm -f /bin/rm
einmal versucht . Leider hat es funktioniert und ich habe die nächste Stunde damit verbracht, die richtige Version vonrm
back von GNU coreutils zu bekommen.Antworten:
Wenn Sie
rm
GNU-Coreutils haben (höchstwahrscheinlich eine reguläre Linux-Distribution),rm -rf /
wird dies vom eingebauten Schutz abgelehnt (laut Manpage und Wikipedia haben Sie das nicht versucht).Sie können diesen Schutz mit überschreiben
--no-preserve-root
.rm
wird dann alles entfernen, was es kann, ohne anzuhalten, nachdem versucht wurde, jede einzelne Datei zu entfernen. Natürlich werden virtuelle Dateisysteme wie/proc
und nicht entfernt/sys
, aber das ist irrelevant - es wird alles auf Ihrer Festplatte entfernen.Nach Beendigung des Befehls wird die Festplatte einschließlich des Betriebssystems gelöscht. Der Kernel und die aktuellen Prozesse werden weiterhin aus dem Speicher ausgeführt, aber viele Prozesse sterben ab, weil sie nicht auf eine Datei zugreifen können. Das Betriebssystem kann beim nächsten Mal nicht mehr gestartet werden.
quelle
--no-preserve-root
weil das normalerweise nicht erwähnt wird.Für diejenigen, die solche Dinge gerne visuell tun, während sie Technomusik hören.
Rm-rf unter Linux ausführen (Video)
Bonuspunkte, wenn Sie die Prozesse beim Sterben benennen können.
quelle
Richten Sie eine VM ein und versuchen Sie es zum Spaß?
Es wird ziemlich weit gehen ... wenn du ein GUI verwendest, könntest du Spaß daran haben, Dinge zu bemerken, die sichtbarer werden. (Symbole in den Menüs werden nicht mehr geladen usw.)
Wenn Sie es loslassen, ist das Betriebssystem so gut wie nicht mehr wiederherstellbar, obwohl Sie möglicherweise einige Daten problemlos zurückerhalten können.
In beiden Fällen möchten Sie das Betriebssystem neu installieren.
quelle
Wenn Sie es auf http://bellard.org/jslinux/ ausprobieren, erhalten Sie :
quelle
Ich erinnere mich, dass dies in früheren
alt.sysadmin.recovery
Zeiten, als es noch keine gab, immer wieder aufgegriffen wurde/proc
und/dev
es sich nur um ein reguläres Verzeichnis mit Einträgen für eine Reihe ungewöhnlicher Inodes handelte ...... aber bei einigen Unix-Varianten (ich erinnere mich an HP-UX, aber das könnte völlig falsch sein) konnte der letzte Verzeichniseintrag für ein ausgeführtes Programm nicht entfernt werden. (Shared Libraries? Was sind das?)
Auf solchen Systemen , wenn Sie begann eine bis in den Wartungsmodus (so wurde nichts läuft , aber die Shell, auch nicht
init
, und keine sekundären Dateisysteme wurden montiert) und habenexec /bin/rm -rf /
, würden Sie mit einem völlig leeren Root - Dateisystem belassen werden , außer dass/bin
und/bin/rm
würde überleben.Die Bewohner des gruseligen Teufelsklosters hielten dies für angemessen und angemessen.
quelle
rm -rf /
sollte bei neueren Implementierungen nicht zugelassen werden, da vorgeschlagen wurde, dass sie den POSIX-Standard verletzen:"
rm -rf /
" Schutz auf Oracle Blogquelle
/foo/..
auch wenn Sie nicht in sind/foo
. Es gibt nicht an , dass Sie das aktuelle Verzeichnis (z. B.rm -r `pwd`
) oder das übergeordnete Verzeichnis des aktuellen Verzeichnisses nicht entfernen dürfen .Ein Punkt, den ich von keinem anderen gesehen habe: Dateien, die gerade geöffnet sind (z. B. rm selbst), verschwinden, selbst wenn sie gelöscht werden, erst nach dem Schließen vom Laufwerk.
quelle
rm
wird sich aus dem fs entfernen - das programm ist vollständig im speicher geladen, nicht die dateiWenn Sie es einmal probiert haben (auf einem Server, der mich nervt), als root im Terminal angemeldet, verlieren Sie fast alles. Das einzige, was nicht gelöscht wird, ist nur der Prozess, der für das Betriebssystem wesentlich war.
quelle
/boot
,/sbin
,/etc
,/bin
,/vmlinuz
? Bam, weg. Viel Glück beim Booten ohne diese - in der Tat viel Glück, wenn alles erledigt ist.chmod -fR 777 /
ist schädlich, weil es die Bits setuid und setgid ausschaltet.Wie weit Sie kommen, hängt im Wesentlichen von den spezifischen Unix / Linux-Distributionen ab.
Um Ihre Basisfrage zu beantworten, wird yes -
rm
command zusammen mit allen anderen Standardbefehlen in/bin
und anderen Ordnern entfernt.Hier ist der einfache Test, den ich unter Linux Ubuntu 15.04 mit VM durchgeführt habe.
Virtuelle Maschine initialisieren über
vagrant
:Wenn Sie dann versuchen, alle Dateien auf die übliche Weise zu entfernen, können Sie nicht:
Also lass es uns versuchen
--no-preserve-root
. Überprüfen Sie immer, ob Sie in der virtuellen Maschine angemeldet sind (so wie Sie es habenvagrant@vagrant-ubuntu-vivid-64:~$
), und führen Sie es dann aus (versuchen Sie es nicht zu Hause):Danach kehrt es zur Shell-Eingabeaufforderung zurück, als wäre nichts passiert, aber Sie können keine Befehle mehr ausführen, abgesehen von wenigen eingebauten und
kill
, sodass Sie Ihren Job beenden und Ihre Sitzung beenden können :)Zum Beispiel:
Also hat es ziemlich alles entfernt, einschließlich
rm
,ls
und alle anderen Befehle, aber du bist immer noch angemeldet. Es gibt einige spezielle Ordner, die nicht entfernt wurden, wie z. B. Geräte/dev
,/proc
oder/sys
die keine regulären Verzeichnisse / Dateien sind, aber es ist ein Pseudodateisystem, das Schnittstellen für die Verarbeitung und den Kernel von Daten bietet.Wenn Sie nicht über Vagrant oder Linux verfügen, können Sie mit einigen JavaScript Linux x86-Emulatoren spielen .
Wenn Sie an Möglichkeiten zur Wiederherstellung nach einer solchen Katastrophe interessiert sind, überprüfen Sie Folgendes:
quelle