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.