Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1784 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Explications sur cette commande bash ":(){:|:&};:"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Explications sur cette commande bash ":(){:|:&};:"

n°715866
olib
keep smiling !
Posté le 09-08-2005 à 14:25:48  profilanswer
 

Bonjour à tous,  
 
Un ami à moi m'a envoyé cette commande "relativement" esothérique qui, si executée dans un shell bash, plante le système. J'ai également tenté de l'exécuter sous tcsh mais sans succès.  
 

Code :
  1. :(){ :|: &};:


 
attention: ça fonctionne! ;) La direction se décharge de toutes responsabilités... bla bla bla.  
 
D'après ce que je crois comprendre, cela lance tous les exécutables disponibles dans le PATH du shell mais je n'en suis pas sur et, quoi qu'il en soit, je n'en comprends pas la syntaxe.
 
Quelqu'un pourrait-il m'expliquer toutes les subtilités de ce truc? :)


Message édité par olib le 09-08-2005 à 14:57:18

---------------
olib
mood
Publicité
Posté le 09-08-2005 à 14:25:48  profilanswer
 

n°715868
Gf4x3443
Killing perfection
Posté le 09-08-2005 à 14:32:25  profilanswer
 

Code :
  1. jym@toulouse ~ $ :(){:|:&};:
  2. -bash: syntax error near unexpected token `{:'


 
Sinon, ca ressemble a une bonne vieille fork bomb des familles je dirais...
 
C est pas vraiment un plantage, limite le nombre de processus avec ulimit et réessaie.


Message édité par Gf4x3443 le 09-08-2005 à 14:32:43
n°715869
olib
keep smiling !
Posté le 09-08-2005 à 14:36:17  profilanswer
 

ouais je me doutais bien que c'etait un truc du genre mais la concision du truc m'intrigue en fait :)
 
effectivement, un petit coup d'ulimit devrait la "désamorcer" ;)
 
j'aimerais juste la comprendre sans devoir me farcir l'intégralité de la man-page de bash :p


---------------
olib
n°715870
olib
keep smiling !
Posté le 09-08-2005 à 14:38:35  profilanswer
 

tiens, effectivment, elle ne fonctionne plus chez moi non plus, ya un charactère qui a du se perdre qqpart... je vais investiguer...


---------------
olib
n°715872
Gf4x3443
Killing perfection
Posté le 09-08-2005 à 14:46:18  profilanswer
 

Ok, donc testé, j ai pas vu ton erreur dans la syntaxe.
 
La bonne c est celle la:
 

Code :
  1. :(){ :|: &};:


 
C est pas vraiment un plantage, c est plus du thrashing.
 
Bah voila ce que ca donne, si tu fais mumuse avec ulimit:
 

Code :
  1. jym@toulouse ~ $ ulimit -u 10
  2. jym@toulouse ~ $ :(){ :|: &};:
  3. -bash: fork: Ressource temporairement non disponible
  4. jym@toulouse ~ $


 
Pour comprendre la syntaxe, tu cherches partout sous google, c est expliqué :D "fork bomb bash"


Message édité par Gf4x3443 le 09-08-2005 à 14:46:34
n°715875
olib
keep smiling !
Posté le 09-08-2005 à 14:56:35  profilanswer
 

ok, les espaces sont importants on dirait!
 
je vais voir quoi avec google... merci!


---------------
olib
n°715877
ceyquem
E falso sequitur quodlibet
Posté le 09-08-2005 à 15:00:50  profilanswer
 

Gf4x3443 a écrit :

Ok, donc testé, j ai pas vu ton erreur dans la syntaxe.
 
La bonne c est celle la:
 

Code :
  1. :(){ :|: &};:


 
C est pas vraiment un plantage, c est plus du thrashing.
 
Bah voila ce que ca donne, si tu fais mumuse avec ulimit:
 

Code :
  1. jym@toulouse ~ $ ulimit -u 10
  2. jym@toulouse ~ $ :(){ :|: &};:
  3. -bash: fork: Ressource temporairement non disponible
  4. jym@toulouse ~ $


 
Pour comprendre la syntaxe, tu cherches partout sous google, c est expliqué :D "fork bomb bash"


 
ils sont méchants ces petits smileys  :D

n°715881
Gf4x3443
Killing perfection
Posté le 09-08-2005 à 15:16:36  profilanswer
 

Pour fork bomber une machine, je connaissais pas cette commande la.
 
Moi j utilisais celle la:
 

Code :
  1. $0 & $0 &


 
Parce qu il y en a toujours qui prétendent qu il te faut compiler du C pour pouvoir fork bomber un systeme  [:spamafote]
 
Certaines personnes ne sont pas conscientes qu il faut mettre des limites aux utilisateurs (via PAM par exemple), parce que mine de rien, quelqu un qui débute en programmation, s il se lance dans des forks et que son programme tourne en boucle, c est sympa pour les petits copains qui bossent aussi sur la machine.


Message édité par Gf4x3443 le 09-08-2005 à 15:17:04
n°715925
olib
keep smiling !
Posté le 09-08-2005 à 16:32:57  profilanswer
 

Gf4x3443 a écrit :

Pour fork bomber une machine, je connaissais pas cette commande la.
Certaines personnes ne sont pas conscientes qu il faut mettre des limites aux utilisateurs (via PAM par exemple), parce que mine de rien, quelqu un qui débute en programmation, s il se lance dans des forks et que son programme tourne en boucle, c est sympa pour les petits copains qui bossent aussi sur la machine.


 
moi aussi j'ai fait des études dans le domaine de l'informatique! ;)
 
vive les travaux de programmation // et les sémaphores qu'on oublie de libérer! :p


---------------
olib
n°715973
deather2
Posté le 09-08-2005 à 17:34:42  profilanswer
 

Ca marche aussi avec zsh :)
Mais NetBSD-3 a l'air protege contre ce type d'attaque.


Message édité par deather2 le 09-08-2005 à 17:35:30
mood
Publicité
Posté le 09-08-2005 à 17:34:42  profilanswer
 

n°715997
fl0ups
東京 - パリ - SLP
Posté le 09-08-2005 à 18:21:03  profilanswer
 

C'est activé par défaut sur les BSD mais rarement sur les distros linux
 
--> /etc/security/limits.conf  
 
 
Il ne faut pas mettre les limites trop bas non plus sinon c'est pénible coté utilisateur
(par ex avec KDE)


---------------
Fluctuat nec mergitur
n°716016
Zaib3k
Posté le 09-08-2005 à 18:42:00  profilanswer
 

le : en bash c'est quoi ?
 
edit:

      : [arguments]
              Pas d'effet. Cette commande ne  fait  rien  d'autre
              que  l'expansion  des arguments et la mise en place
              des redirections. Le code de retour est nul.


 
je pige pas le fonctionnement de la bombe là. :/


Message édité par Zaib3k le 09-08-2005 à 18:47:27

---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°716101
zekern
Posté le 09-08-2005 à 23:13:01  profilanswer
 
n°716108
Zaib3k
Posté le 09-08-2005 à 23:31:21  profilanswer
 

merci
 
que c'est fourbe de redéfinir : ! :D


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Explications sur cette commande bash ":(){:|:&};:"

 

Sujets relatifs
fenetre windows et commande unixEnvoi de mail en ligne de commande
[Topic Unique] Wi-fi@Linux: Viendez couper vos câbles ![débutant] problème script bash
execution commande sur station windows distanteUbuntu : make: c++ : commande introuvable
Scripts Bash - Aide - Comment cacher une fenetre ?commande réseau pour solaris, probleme de dns.
PERL + bash: gestion des espaces vides dans les noms de fichierEquivalent de la commande "free -b" (Linux) sous FreeBSD ?
Plus de sujets relatifs à : Explications sur cette commande bash ":(){:|:&};:"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR