Por que o seguinte comando está matando um sistema?

5

Alguém entendeu o seguinte código, rodando no bash?

:(){ :|:& };:

Parece ser uma bomba " fork " no Linux.

    
por daisy 25.12.2011 / 10:38

1 resposta

16

Não é tão difícil decifrar de fato.

Esse trecho de código apenas define uma função chamada : , que chama duas instâncias de si mesmo em um pipeline: :|:& . Após a definição, uma instância dessa função é iniciada.

Isso leva a um número cada vez maior de processos de subshell. Sistemas desprotegidos (sistemas sem um limite de número de processos por usuário) serão severamente afetados por essas bombas, já que processos legítimos serão rapidamente superados em número e, portanto, privados da maioria dos recursos da CPU.

    
por 25.12.2011 / 11:00