Como evitar a bomba de garfo?

14

Para evitar a bomba dos garfos, segui este http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -areflete as novas configurações, mas quando eu executo (como rootem bash) :(){ :|:&};:a VM continua com a CPU + RAM e o sistema congelam.

Como garantir que os usuários não derrubem o sistema usando fork-pumps ou executando um aplicativo de buggy?

SO: RHEL 6.4

user44441
fonte
Não posso reproduzi-lo aqui. Você está tentando isso rootpor acaso? De qual shell você está tentando? (o espaço que falta depois {sugere, zshmas também não posso reproduzi-lo).
Stéphane Chazelas
Stephane Chazelas: 1] Eu estava rodando como root, tentei com o usuário normal que funciona. 2] O espaço ausente é erro de digitação, estou usando o bash. Desculpe. 3] É que o ulimit não pode moderar o usuário 'root'?
user44441
@ stephane-chazelas 1] Eu estava rodando como root, tentei com o usuário normal que funciona. 2] O espaço ausente é erro de digitação, estou usando o bash. Desculpe. 3] É que o ulimit não pode moderar o usuário 'root'?
user44441

Respostas:

8

O superusuário ou qualquer processo com os recursos CAP_SYS_ADMIN ou CAP_SYS_RESOURCE não são afetados por essa limitação, isso não é algo que possa ser alterado. rootsempre pode bifurcar processos.

Se algum software não é confiável, ele não deve ser executado da mesma rootmaneira.

Stéphane Chazelas
fonte
3
A menos que faça algo especial, praticamente nada deve funcionar como raiz de qualquer maneira. root é a conta que você usa quando está cansado de tentar descobrir quais privilégios / direitos você precisa descobrir ou algum serviço fundamental do sistema.
Bratchley
11

Para tornar essa mudança generalizada, você precisará adicionar esses limites a todo o ambiente. Alterações usando o ulimitcomando são apenas para o ambiente atual.

NOTA: Isso não terá efeito no usuário root!

Exemplo

Edite este arquivo: vi /etc/security/limits.confe adicione entradas ao arquivo, limitando o número de processos ( nproc) que um usuário ou grupo de usuários específico tem permissão.

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

NOTA: Existem mais exemplos nesse arquivo. Cuidado ao usar o "todos" (também conhecido como *) . Isso também limitará as contas do sistema.

Referências

slm
fonte
Embora "tudo" limite as contas do sistema, a maioria dos serviços executados por essas contas do sistema não passa pam_limits.
Jordanm #
O ulimit não pode moderar o usuário 'root'?
User44441
Apenas como uma idéia geral para adicionar mais à postagem, você pode adicionar algo sobre pam_cgroup à postagem, já que a plataforma do OP dá suporte a ela e pam_limitsserá substituída por uma vez que os cgroups tiverem uma adoção mais ampla.
Bratchley
Além disso, como parece que o OP está brincando com as políticas de uso de recursos, cgroupsdaria a eles melhores botões para a utilização da rede e da CPU.
Bratchley