Limite de processo para o usuário no Linux

2

Esta é a pergunta padrão, "Como faço para definir um limite de processo para uma conta de usuário no Linux para evitar o fork-bombing", com um toque adicional. O programa em execução é originado como um processo Python de propriedade da raiz, que então é setuids / setgids como um usuário comum. Até onde sei, neste momento, qualquer limite definido em /etc/security/limits.conf não se aplica; O processo setuid-ed pode agora bifurcar-se. Alguma idéia de como evitar isso?

    
por BrainCore 12.03.2010 / 09:40

2 respostas

4

Você precisa dar uma olhada em "Programação Avançada no Ambiente UNIX". Este livro detalha as etapas necessárias para ajudá-lo a alcançar o que você está tentando. Qualquer criança clonada / bifurcada de um processo herdará os limites do pai. Você tem duas opções aqui como eu vejo: uma que você pode definir especificamente os rlimits depois que a criança é criada (não tão legal) ou você pode fazer a mágica dupla para criar um novo grupo de processos e líder de sessão que herdará apropriadamente os limites definido no sistema.

    
por 12.03.2010 / 11:23
1

Como os processos filhos herdam as configurações ulimit, você poderia executar ulimit no script python depois de definir o uid / gid, criando um novo limite rígido (inferior), que seria então a nova condição de execução para todo o potencial garfo-bombom?

    
por 12.03.2010 / 10:25