limits.conf ulimits não sendo aplicado a processos chrooted

4

Nós permitimos que os usuários executem scripts em nossos servidores. Nosso modelo de segurança envolve chrooting deles. Queremos poder aplicar restrições ulimit a eles, e a melhor maneira de fazê-lo parece estar em /etc/security/limits.conf

Mas parece que não funciona. Aqui está o que definimos em limits.conf :

@registered_users    -    priority   7
@registered_users    -    nice       7
*                    -    priority   9
*                    -    nice       9

E isso funciona em alguns casos:

sudo -u testuser python

Dará um processo python com niceness 9 (não 7, irritantemente)

MAS

sudo chroot --userspec=testuser:registered_users python

fornece um processo python com niceness 0.

alguma pista?

Tentamos adicionar session required pam_limits.so a /etc/pam.d/common-session , sem sucesso.

    
por hwjp 23.01.2012 / 19:59

1 resposta

1

As configurações em /etc/security/limits.conf não estão funcionando dentro do chroot porque não há nenhum programa usando pam_limits para defini-las. Eles funcionam quando você usa o sudo, porque a configuração do PAM do sudo chama pam_limits.

A resposta óbvia é chamar algo dentro do chroot que usa pam_limits, como "su", como eles dizem aqui: link (embora você tenha que descomentar a linha que usa pam_limits em /etc/pam.d/su, porque ela vem comentada por padrão).

Ou seja, assumindo que seu diretório chroot é / srv / chroot, e você quer executar / usr / bin / python, você poderia tentar algo assim:

sudo chroot /srv/chroot su testuser /usr/bin/python

Acho que o sudo também funcionará:

sudo chroot /srv/chroot sudo -u testuser /usr/bin/python

Mas eu só posso falar por "su", que é o que eu uso em um caso como este. Por favor, tente e diga se funcionou para você.

    
por 04.12.2014 / 10:43