Befehle aus der Hölle

  Ralf Hersel   Lesezeit: 8 Minuten  🗪 6 Kommentare

Das Kennen von zerstörerischen Terminalbefehlen, ist der erste Schritt, um diese nicht auszuführen.

befehle aus der hölle

Wir schätzen GNU/Linux als Betriebssystem nicht nur wegen seiner Flexibilität, sondern auch wegen seiner Sicherheit. Doch Achtung, der Feind sitzt meistens vor der eigenen Tastatur. Insbesondere wenn sich Semiprofessionelle im Terminal bewegen (so wie ich :), können fatale Fehler passieren, die durch Unwissenheit oder Copy&Paste-Aktionen eingeleitet werden. Daher möchte ich in diesem Artikel auf die 'Befehle aus der Hölle' hinweisen.

Es gibt im Internet Sammlungen solcher Befehle; die Suche nach "linux most dangerous terminal commands" bringt euch zu den richtigen Seiten. Dieser Artikel erhebt keinen Anspruch auf Vollständigkeit, sondern dient eher der Sensibilisierung von weniger erfahrenen Anwender:innen, die sich vielleicht erst seit Kurzem ins Terminal getraut haben. Bevor wir einen Blick in die Hölle werfen, warne ich eindringlich davor, diese Befehle auszuprobieren. Daher habe ich nur Screenshots und keinen kopierbaren Code verwendet. Wer den Effekt der Befehle dennoch sehen möchte, sollte dafür eine virtuelle Maschine verwenden, die ausschliesslich zum Zerstören eingerichtet wurde.

Aus oben genannten und Zeitgründen habe ich die Befehle nicht selbst durchgespielt. Daher kann es sein, dass der eine oder andere Befehl von aktuellen GNU/Linux-Distributionen bzw. Terminal-Shells abgefangen wird. Seid also nicht enttäuscht, wenn eure virtuelle Maschine nicht bei jedem Befehl zu Staub zerfällt oder in Flammen aufgeht. Am besten probiert ihr es gar nicht erst aus. Fork-Bomben könnten auch über eine VM hinaus, Schaden anrichten, indem die Hardware überlastet wird. So, genug der Warnung, lasst die Finger davon.

1. Löschen über alles

Der Befehl zum Löschen von Dateien in Terminal heisst rm (remove). Da es auf der Kommandozeile kein Zurück und keinen Papierkorb gibt, ist rm immer mit Vorsicht zu geniessen. Normalerweise wendet man den Befehl auf eine einzelne Datei an. Die gefährliche Variante sieht so aus:

Der Parameter -rf bewirkt, dass alle Dateien inklusive der Unterverzeichnisse gelöscht werden, und zwar ohne nachzufragen, ob man das wirklich möchte. Mit / wird das Root-Verzeichnis als Ausgangspunkt der Löschaktion bestimmt. Als Ergebnis davon erhält man eine leere Festplatte, bzw. eine gelöschte Root-Partition, um genauer zu sein.

2. Output auf die Platte

Terminalbefehle erzeugen in der Regel ein Ergebnis, welches auf stdout ausgegeben wird (das Terminal). Man kann die Ausgabe aber auch in eine andere Richtung lenken; wie wäre es mit eurer Hauptpartition? Das Umlenken geschieht mit dem > Operator, z. B. so:

Als Kommando empfiehlt sich hier shred, was dazu dient, Dateien unwiederbringlich zu zerstören, indem die Datei mit Zufallsdaten überschrieben wird. In diesem Fall wäre das eure Festplatte.

3. Die Fork-Bombe

Vor der Erläuterung zeige ich euch den Befehl:

Was aussieht wie ein ASCII-Emoji, ist in Wahrheit eine Fork-Bombe, die nicht so leicht zu verstehen ist. Dieser Befehl erstellt eine Funktion mit dem Namen : und definiert den Inhalt der Funktion so, dass sie sich selbst ausführt und in einen anderen Aufruf von sich selbst überleitet. Auf diese Weise läuft die Funktion im Vordergrund, während derselbe Prozess im Hintergrund ausgeführt wird. Die Funktion wird ausgeführt und wiederholt sich immer wieder, sodass sie schnell alle Ressourcen verbraucht, bis das System einfriert.

4. Nichts an Datei

Dieser Höllenbefehl ist ähnlich zu Nr. 2. In diesem Beispiel wende ich ihn auf eine wichtige Datei an:

Das > ist eine Shell Redirection für cat /dev/null > file. Damit wird die Datei mit Nichts (dem Inhalt von /dev/null) überschreiben und ist danach leer. Das ist fatal, wenn der Befehl auf wichtige Konfigurationsdateien angewendet wird. Die Hauptgefahr liegt aber darin, dass man > Datei schnell einmal aus Versehen eingetippt hat.

5. Ja, ich will !!

Die History der ausgeführten Shell-Befehle ist eine nützliche Quelle für Tippfaule oder Vergessliche. Sie kann aber gefährlich werden:

Dieser Befehl führt den ersten Eintrag aus der History mit Root-Rechten aus. Da sich niemand daran erinnert, welches der erste Historyeintrag war, ist der Befehl ein russisches Roulette. Übrigens, mit !! führt ihr den letzten Befehl aus der History erneut aus. Das ist weniger kritisch, weil ihr euch wahrscheinlich an euren letzten Befehl erinnern könnt.

6. Wie ein Windows-User

Irgendwelche Dateien von irgendwelchen Servern herunterzuladen und auszuführen, ist keine gute Idee. Das machen nur Windows-Anwender:innen. In Foren findet man oft Anleitungen, die genau diese Vorgehensweise vorschlagen. Ein solcher Befehl könnte so lauten:

Mit wget (oder curl) laden wir ein unbekanntes Skript herunter und pipen es an die Shell, damit es direkt ausgeführt wird. Macht das bitte niemals.

7. Aus der Zeit fallen

Nach und nach ersetzt Systemd das zeitgesteuerte Ausführen von Befehlen, was einen eigenen Artikel wert wäre. Dennoch erfüllt auf vielen Installationen Crontab diese Aufgabe. Diese Datei enthält oft wichtige Befehle, die zu bestimmten Zeiten gestartet werden müssen. Mit diesem Befehl macht ihr der Sache ganz schnell ein Ende:

Dummerweise erwartet der Befehl keine Bestätigung.

8. Alles noch einmal

Hier ist noch ein Höllenkommando aus der History:

Damit schickt ihr den gesamten Inhalt der Befehls-Historie an die Shell, um diese Befehle auszuführen. Das führt zu grossen Katastrophe.

9. Schnell mal was Brennen

Wie ich in diesem Artikel angedeutet habe (siehe Kommentare), kann man mit dd ISO-Images auf einen USB-Stick brennen. Der Befehl bewahrt einen nicht vor Fehlern. Wie wäre es damit:

Damit wird eure erste Festplatten-Partition mit Zufallswerten überschrieben.

10. Unnützes Zeug löschen

Räumt ihr gerne auf, oder könnt ihr euch von nichts trennen? Denjenigen, die gerne sammeln, empfehle ich die Distribution NixOS. Bei Einsteigern kommt die Aufräumsucht weniger vor, aber Erfahrenere schauen doch gerne mal ins Verzeichnis /bin und löschen dort alle Dateien, die sie nicht verstehen. Aber auch das Löschen eines einzigen essenziellen Paketes macht euer System unbrauchbar:

Fazit

  1. Führt keine Befehle im Terminal aus, bei denen ihr euch nicht sicher seid, was sie bewirken.
  2. Führt keinen der in diesem Artikel genannten Befehle aus.


Quellen: viele, sucht selbst nach: "linux most dangerous terminal commands"

Tags

Terminal-Befehle, gefährlich, Konsole, Shell

Alex
Geschrieben von Alex am 23. Juni 2023 um 09:15

Da fehlt mein persönlicher Liebling :)

chmod -R a-x /

Damit baut man ein absolut sicheres Linux
Pascal
Geschrieben von Pascal am 23. Juni 2023 um 13:41

Habe ich in Anfängertagen mal genau so mit /etc gemacht, fand den chmod Befehl so praktisch

Dann war Neuinstallation angesagt

kaligule
Geschrieben von kaligule am 23. Juni 2023 um 09:33

Die gesammte history nochmal ausführen hat etwas poetisches an sich. Mein Leben zieht noch einmal vor meinen Augen vorbei.

Thorsten
Geschrieben von Thorsten am 23. Juni 2023 um 21:01

Schöner Gedanke. Diesen Befehl fand ich auch am schönsten.

crontab -r ist mir mal aus Versehen passiert. Ja, ich hatte ein Backup. Aber wie perfide diesen gefährlichen Parameter aufs "r" zu legen, wo man doch dauernd "e" tippt, also direkt daneben!

Systemd ersetzt gerade crontab? Verdammt, ich werde alt. Einen Artikel darüber würde ich gerne lesen, hüstel.

Andreas Rohr
Geschrieben von Andreas Rohr am 24. Juni 2023 um 00:00

Klasse Artikel!

Ich werde mal eine VM aufsetzen und dann alle durchtesten ;-)

Helge
Geschrieben von Helge am 24. Juni 2023 um 00:50

Die Beispiel-URL für Nr. 6 ist aber schon sehr plump, m.E...

Zum Klassiker Nr. 1: "rm -fr /" <- Löschen aller französischen Sprachdateien des Systems. :D