Comprensione di questa istruzione shell


8

Devo ammettere che è un compito, ma mi sono perso nello spiegare la seguente riga di comando:

ATTENZIONE : questa è una cosiddetta FORK BOMB! Questa riga di comando può e si arresta in modo anomalo sul tuo PC consumando tutta la RAM e la CPU (fidati, l'ho provato ...)

:(){ :|:& };:

Come so che dovrei farlo da solo qui è quello che ho finora (cercare questi caratteri è molto scoraggiante).

  1. La pipe consente di concatenare alcuni comandi insieme in modo che il primo output venga utilizzato dal secondo come input.
  2. Il & è di eseguire un comando in background (sostanzialmente utilizzato per avviare qualcosa da una shell che non dovrebbe essere bloccato dal comando)

Immagino che: è quello di fork? Ma qui sono totalmente perso! Sono disposto a imparare, quindi forse qualcuno ha una buona risorsa dove posso leggere al riguardo?


@kkp: non è una situazione in cui il tuo sistema non risponde in modo simile a un arresto anomalo? La soluzione per risolverlo è la stessa: reimpostare il sistema
WarrenFaith

Si hai ragione.
samarasa,

FORKBOOOOOMB: D
zookalicious l'

Risposte:


14
:()      # define ':' -- whenever we say ':', do this:
{        # beginning of what to do when we say ':'
    :    # load another copy of the ':' function into memory...
    |    # ...and pipe its output to...
    :    # ...another copy of ':' function, which has to be loaded into memory
         # (therefore, ':|:' simply gets two copies of ':' loaded whenever ':' is called)
    &    # disown the functions -- if the first ':' is killed,
         #     all of the functions that it has started should NOT be auto-killed
}        # end of what to do when we say ':'
;        # Having defined ':', we should now...
:        # ...call ':', initiating a chain-reaction: each ':' will start two more.

Fonte: Forkbombs su Wikipedia


grazie ... sembra piuttosto male! Non sapevo che puoi definire un metodo in questo modo. molto interessante
WarrenFaith l'

potresti dirmi come hai trovato l'articolo di Wikipedia? Ci ho provato ma non ci sono riuscito ...
WarrenFaith

Sapevo già cosa cercare;)
Egil,

2
Ok, quindi sei un cattivo hacker :) grazie comunque! mi ha aiutato molto
WarrenFaith l'

Molti di noi che hanno visitato i forum di Ubuntu sono stati avvertiti molte volte di usare forkbombs o sudo rm rf, conosci il resto, ecc ... Non so se è da lì che ha preso Egil: P
zookalicious
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.