• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Was macht der Befehl ":(){ :|:& };:"

Hallo,

als ich neulich im Übungssaal mit meinem Banknachbar ein Problem besprochen habe, ist mein anderer Banknachbar an meinen Laptpop gegangen und hat :(){ :|:& };: im Terminal eingegeben.
Der Rechner blieb sofort stehen und rechnete los wie verrückt. Ich hab ihn dann mit dem Power Knopf gekillt.

Was macht dieser Befehl?(evtl. speziell im Ubuntu)
Code:
:(){ :|:& };:
Wie mache ich das wieder rückgängig?
Das ganze wurde natürlich mit Userrechten gemacht.

Danke im Vorraus
Florian
 
A

Anonymous

Gast
Hi,

da ich (K)Ubuntu benutze, konnte ich nicht widerstehen.

Erster Versuch: Der Rechner gibt mit dem Drücken der Enter-Taste "[1] 6608" aus. Die PID?

Zweiter Versuch: Der Rechner bleibt hängen und läßt sich nur noch durch den Power-Knopf ausschalten.

Der erste Effekt ist also nicht reproduzierbar. Eine Prozeßübersicht ließ sich nicht mehr starten, und nochmal teste ich das jetzt nicht :wink:

Schöne Grüße,

Joker
 
Da gab es schonmal einen Thread dazu.

Sinngemäß macht der Befehl etwa folgendes. Genaueres kann man in dem anderen Thread nachlesen:

Der Quellcode oben nutzt die Fähigkeiten der Bash um immer wieder einen neuen Prozess/Thread aufzumachen. Dadurch verbrutzelt die Bash den Memory des Rechners.

Abrechen ist da meist nicht mehr - so schnell kommt man nicht auf STRG-C wie das die den Speicher voll macht. Aber es gibt eine Impfung dafür. Stichwort: "ulimit".

Mit ulimit -u kann man die maximale Prozessanzahl limitieren. Wenn das auf "unlimited" steht wirkt der Befehl oben, wenn da eine Beschränkung drin steht bricht der Befehl nach einiger Zeit mit einer Fehlermeldung ab. Ergo ulimit -u in /etc/profile und gut ist.
 
Tetraden schrieb:
Was macht dieser Befehl?(evtl. speziell im Ubuntu)
Code:
:(){ :|:& };:
Wie mache ich das wieder rückgängig?
Das ganze wurde natürlich mit Userrechten gemacht.

Der Befehl definiert eine function mit dem Namen ":" und startet sie. Die Funktion ruft sich aber wiederum selbst auf und erzeugt mit dem "&" einen Hintergrundprozess.

Es ist also eine klassische Dauerschleife, die immer wieder neue Prozesse aufmacht.
 
Okay, dankeschön.

Ich war mir nur unsicher, ob das Ganze mei System nicht evtl. nachhaltig geschädigt hat.

Ich glaub das fieseste an dem Befehl ist, dass keine Suchmaschine die ganzen Sonderzeichen mitnimmt. :)

EDIT: Au weia, jetzt seh ichs auch. Also wäre es Formatiert eher das:
Code:
:()
{
:|:&
};

:
 
Oben