Comprendre cette déclaration shell

8

J'avoue que c'est un devoir mais je suis perdu à expliquer la ligne de commande suivante:

AVERTISSEMENT : Il s'agit d'une soi-disant FORK BOMB! Cette ligne de commande peut et va planter votre PC en consommant toute la RAM et le CPU (croyez-moi, je l'ai essayé ...)

:(){ :|:& };:

Comme je sais que je devrais le faire seul, voici ce que j'ai jusqu'à présent (la recherche de ces caractères est très décourageante).

  1. Le canal permet de concaténer certaines commandes ensemble afin que la première sortie soit utilisée par la seconde comme entrée.
  2. Le & est d'exécuter une commande en arrière-plan (essentiellement utilisé pour démarrer quelque chose à partir d'un shell qui ne devrait pas être bloqué par la commande)

Je suppose que: est-ce pour bifurquer? Mais ici, je suis totalement perdu! Je suis prêt à apprendre, alors peut-être que quelqu'un a une bonne ressource où je peux lire à ce sujet?

WarrenFaith
la source
@kkp: n'est-ce pas une situation où votre système ne répond pas de manière similaire à un crash? La solution pour y remédier est la même: réinitialisation matérielle du système
WarrenFaith
Oui tu as raison.
samarasa
FORKBOOOOOMB: D
zookalicious

Réponses:

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.

Source: Forkbombs sur Wikipédia

Egil
la source
merci ... ça sonne assez mal! Je ne savais pas que vous pouvez définir une méthode de cette façon. très intéressant
WarrenFaith
pourriez-vous me dire comment vous avez trouvé cet article wikipedia? J'ai essayé mais sans succès ...
WarrenFaith
Je savais déjà quoi chercher;)
Egil
2
Ok, donc vous êtes un mauvais hacker maléfique :) merci quand même! m'a beaucoup aidé
WarrenFaith
La plupart d'entre nous qui ont parcouru les forums Ubuntu ont été avertis à plusieurs reprises de l'exécution de forkbombs ou de sudo rm rf, vous savez le reste, etc ... Je ne sais pas si c'est de là que provient Egil: P
zookalicious