Portal   |   Hospedagem   |   Pesquisar  
Registrar  Entrar
Índice do fórum Linux Dicas / Tutoriais


Siga-nos:
Siga lnxtotal on Twitter

Vencendo o comando da morte

   
Conhece alguma dica ou tutorial referente à linux? Poste aqui!

Moderadores: Fundador, Moderadores

Vencendo o comando da morte

Mensagempor zeroday » 21 Set 2010, 17:56

: (){ :|:& };: Como vencer o comando da morte?
Luciano Andress Martini | 5 de maio de 2010

Easy AdSense by Unreal

Este simples comando é capaz de derrubar um servidor ou estação linux em poucos segundos: não importa com qual usuário você se logue num ssh ou terminal:
: (){ : | : & };:


Há muito tempo me deparei com este problema nos meus servidores que rodavam ssh e após conseguir soluciona-lo de diversos modos diferentes decidi descreve-los aqui: (não esqueça de fazer estes comandos com o usuário administrador, recomendo que use o comando sudo su ou simplesmente su(dependendo a distribuição) antes de executar os comandos)

1- O primeiro modo e mais simples é digitando
echo 'alias :="echo 1"' >>/etc/profile

Com isso o comando da morte já não irá mais funcionar, entretanto esta não é a solução ideal, apesar de ser o mais simples no caso de você não ter o pam. (Existem formas de encontrar brechas nessa solução, como o usuário criar uma nova alias, então só os outros modos são 100% garantidos)

2- O segundo modo é limitando um grupo de usuários quanto o número de processos (no caso mostro como limitar o grupo estudantes):
echo '@estudantes hard nproc 600' >>/etc/security/limits.conf

(Ou Edite o arquivo /etc/security/limits.conf)
-Não se esqueça de criar um grupo estudantes, em /etc/group e de colocar na frente dele o nome dos usuários em que se aplicara a permissão.

3- O terceiro modo é limitando todos os usuários quanto ao número de processos:
echo '* hard nproc 1000' >>/etc/security/limits.conf

Pronto! Nunca mais os usuários do SSH vão poder fazer essa brincadeira ! =[ Que pena.

Fonte: http://linuxhard.org/site/archives/1156

Explicação do funcionamento do comando :
Funciona assim, primeiro é declarada a função : (dois pontos)
As funções são declaradas da seguinte forma:

nome_da_função(){ comandos };

No caso o nome da função é : (dois pontos)

Os comandos são:
: | :&

ou seja, chama a própria função executando-a simultaneamente com ela própria via | (pipe), o & (e comercial) faz com que estes comandos sejam executados em segundo plano.

O : (dois pontos) no final do comando da morte chama a função depois de declará-la.

Resumindo este comando gera uma função que chama ela própria duas vezes, infinitas vezes, gerando um loop.
Avatar do usuário
zeroday
Linux's Fan #3
Linux's Fan #3
 
Mensagens: 222
Registrado em: 21 Set 2010, 17:32
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor Filipe » 21 Set 2010, 17:58

nunca tinha ouvido falar neste comando...

este tutorial tem fonte?
Linux Total, uma alternativa para quem está cansado das mesmas coisas de sempre ;)
Avatar do usuário
Filipe
Administrador
Administrador
 
Mensagens: 1895
Registrado em: 27 Ago 2010, 10:10
Localização: /home/filipe/
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor zeroday » 21 Set 2010, 18:03

Sim aqui esta : http://linuxhard.org/site/
É o terceiro post se não me engano.

Ate mais
Avatar do usuário
zeroday
Linux's Fan #3
Linux's Fan #3
 
Mensagens: 222
Registrado em: 21 Set 2010, 17:32
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor Filipe » 21 Set 2010, 18:11

lembre-se de sempre colocar a fonte ;)

o trabalho das pessoas na internet deve ser valorizado
Linux Total, uma alternativa para quem está cansado das mesmas coisas de sempre ;)
Avatar do usuário
Filipe
Administrador
Administrador
 
Mensagens: 1895
Registrado em: 27 Ago 2010, 10:10
Localização: /home/filipe/
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor zeroday » 21 Set 2010, 18:14

Mas olha bem la FGo . Eu coloquei a fonte no meio do post ;D
Avatar do usuário
zeroday
Linux's Fan #3
Linux's Fan #3
 
Mensagens: 222
Registrado em: 21 Set 2010, 17:32
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor Andreson » 21 Set 2010, 18:18

zeroday escreveu:Mas olha bem la FGo . Eu coloquei a fonte no meio do post ;D

E vero,
Gostei muito interessante, Parabéns

Andreson
Ativo
Ativo
 
Mensagens: 89
Registrado em: 06 Set 2010, 01:19
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor Filipe » 21 Set 2010, 18:20

Nossa. é mesmo. kk...

Passei o olho rápido e nem vi
Linux Total, uma alternativa para quem está cansado das mesmas coisas de sempre ;)
Avatar do usuário
Filipe
Administrador
Administrador
 
Mensagens: 1895
Registrado em: 27 Ago 2010, 10:10
Localização: /home/filipe/
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor Andreson » 21 Set 2010, 19:35

[ADM] FGo escreveu:Nossa. é mesmo. kk...

Passei o olho rápido e nem vi

Deve ser a idade, kkkkk
Depois de um tempo, os olhos começam a ficar "cansados", kkkkkkkkkkkkkkkkkk

Andreson
Ativo
Ativo
 
Mensagens: 89
Registrado em: 06 Set 2010, 01:19
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor zeroday » 22 Set 2010, 00:31

[ADM] FGo escreveu:Nossa. é mesmo. kk...

Passei o olho rápido e nem vi

Acoontece as vezes ;D
Avatar do usuário
zeroday
Linux's Fan #3
Linux's Fan #3
 
Mensagens: 222
Registrado em: 21 Set 2010, 17:32
Distribuição Linux utilizada: Ubuntu

Re: Vencendo o comando da morte

Mensagempor harry56 » 17 Jun 2017, 00:17

Linux Total, uma alternativa para quem está cansado das mesmas coisas de sempre Imagem


บาคาร่า
harry56
Novato
Novato
 
Mensagens: 8
Registrado em: 29 Mai 2017, 00:04
Distribuição Linux utilizada: Mandriva


Voltar para Dicas / Tutoriais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes