:(){ :|:& };:
..definisce una funzione chiamata :
, che si genera da solo (due volte, uno convoglia nell'altro) e fa da sfondo a se stesso.
Con interruzioni di riga:
:()
{
:|:&
};
:
Rinominare il :
funzione a forkbomb
:
forkbomb()
{
forkbomb | forkbomb &
};
forkbomb
Puoi prevenire tali attacchi usando ulimit
per limitare il numero di processi per utente:
$ ulimit -u 50
$ :(){ :|:& };:
-bash: fork: Resource temporarily unavailable
$
In modo più permanente, puoi usare /etc/security/limits.conf
(su Debian e altri, almeno), per esempio:
* hard nproc 50
Ovviamente ciò significa che puoi eseguire solo 50 processi, potresti volerlo aumentare a seconda di cosa sta facendo la macchina!
Questo definisce una funzione chiamata :
che chiama se stesso due volte (Codice:: | :
). Lo fa in background (&
). Dopo l';
la definizione della funzione è terminata e la funzione :
viene avviato.
Quindi ogni istanza di :inizia due nuovi :e così via... Come un albero binario di processi...
Scritto in semplice C che è:
fork();
fork();