limits.conf ulimits no se aplican a procesos chroot

limits.conf ulimits no se aplican a procesos chroot

Permitimos a los usuarios ejecutar scripts en nuestros servidores. Nuestro modelo de seguridad implica hacerles chroot. Queremos poder aplicarles restricciones ulimit, y la mejor manera de hacerlo parece ser en/etc/security/limits.conf

Pero no parece funcionar. Esto es lo que configuramos limits.conf:

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

Y funciona en algunos casos:

sudo -u testuser python

Dará un proceso de Python con amabilidad 9 (no 7, molestamente)

PERO

sudo chroot --userspec=testuser:registered_users python

da un proceso de Python con amabilidad 0.

¿alguna pista?

Intentamos agregarlo session required pam_limits.so, /etc/pam.d/common-sessionsin éxito.

Respuesta1

Las configuraciones en /etc/security/limits.conf no funcionan dentro del chroot porque no hay ningún programa que use pam_limits para configurarlas. Funcionan cuando usas sudo, porque la configuración PAM de sudo llama a pam_limits.

La respuesta obvia es llamar a algo dentro del chroot que use pam_limits, como "su", como dicen aquí:https://lists.debian.org/debian-user/2010/09/msg01398.html(aunque debes descomentar la línea que usa pam_limits en /etc/pam.d/su, porque viene comentada de forma predeterminada).

Es decir, asumiendo que su directorio chroot es /srv/chroot y desea ejecutar /usr/bin/python, podría intentar algo como esto:

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

Creo que sudo también funcionará:

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

Pero sólo puedo hablar por "su", que es lo que uso en un caso como este. Por favor, pruébalo y dinos si funcionó para ti.

información relacionada