Bem existem muitos artigos e tutoriais pela net falando disso então não vou dar explicações muito longas e repetitivas, mas vale colocar uns exemplos aqui, se você usa o bash no Linux você poderia usar a seguinte linha:
$ funcao(){ funcao|funcao& };funcao
Simples e fatal. Notaram o '$' no começo da linha? Isso mesmo não precisa ser root para fazer essas coisinhas do mal. Agora para aqueles que usam Perl ou C:
Perl:
perl -e "fork while fork" &
C:
#include
int main()
{
while(1)
fork();
}
Olhem o código C, ele usa um while(1), ou seja enquanto 1 for 1, chame a fork(), mas não há controladores para esse 1, ele será 1 eternamente, ou até a máquina resetar =)
E para quem acha que o Windows(r) está fora dessa se enganou, faça isso em uma batch dele:
:s
start %0
goto s
Salve como .bat e execute.
No Windows(r) eu não sei corrigir o problema, mas no Linux há uma solução, você precisa limitar o número de processos que uma funcão pode chamar, mas se você colocar um limite muito baixo alguns programas podem não funcionar e um limite muito grande pode fazer com que essas funções causem lentidão ao sistema. Um bom limite seria 100, é bem comum vocês encontrarem esse número nos artigos sobre Fork Bombs por aí.
Para colocar esse limite no Linux faça o seguinte:
Edite o arquivo
/etc/pam.d/login
Adicionando ou habilidando a linha:
session "tab" required "tab" pam_limits.so
Preciso dizer que o "tab" significa usar o botão TAB? E edite também o arquivo
/etc/security/limits.conf
Adicionando a linha:
hard "tab" nproc "tab" 100
Pronto você acabou de colocar um limite de 100 processos para os usuários, se você colocar, por exemplo, 3 processos, logar no bash, e chamar três vezes um programa qualquer, na quarta vez ele não irá funcionar. Entenderam então o porque de colocar um limite razoável de processos? Se não for assim o bash fica inutilizável =)
Grande parte desse post foi baseado em informações da Wikipedia
Bem crianças, é isso, até a próxima aqui no Tux Masters.
2 comentários:
Putz, ficou mto bom o post, bastante interessante, parabéns :-)
opa
entao mano
aprendi isso num curso semana passada na 4linux
o pam é animal.
bloquea o login com root tbm
flw.
Postar um comentário