limites.conf ulimits não sendo aplicados a processos chroot

limites.conf ulimits não sendo aplicados a processos chroot

Permitimos que os usuários executem scripts em nossos servidores. Nosso modelo de segurança envolve fazer o chroot deles. Queremos poder aplicar-lhes restrições ulimit, e a melhor maneira de o fazer parece ser/etc/security/limits.conf

Mas, não parece funcionar. Aqui está o que definimos limits.conf:

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

E funciona em alguns casos:

sudo -u testuser python

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

MAS

sudo chroot --userspec=testuser:registered_users python

fornece um processo python com gentileza 0.

alguma pista?

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

Responder1

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 use pam_limits, como "su", como dizem aqui:https://lists.debian.org/debian-user/2010/09/msg01398.html(embora você precise descomentar a linha que usa pam_limits em /etc/pam.d/su, porque ela vem comentada por padrão).

Ou seja, supondo que seu diretório chroot seja /srv/chroot e você queira executar /usr/bin/python, você pode tentar algo assim:

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

Acho que sudo também resolverá o problema:

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

Mas só posso falar por “su”, que é o que uso num caso como este. Por favor, experimente e diga se funcionou para você.

informação relacionada