4

Мы разрешаем пользователям выполнять скрипты на наших серверах. Наша модель безопасности предполагает их хромирование. Мы хотим иметь возможность применять ограничения ulimit к ним, и лучший способ сделать это, по-видимому, находится в /etc/security/limits.conf

Но это не похоже на работу. Вот что мы установили в limits.conf:

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

И это работает в некоторых случаях:

sudo -u testuser python

Даст процесс Python с 9-ю милостью (не 7, надоедливо)

НО

sudo chroot --userspec=testuser:registered_users python

дает процесс Python с добротностью 0.

какие-нибудь подсказки?

Мы попытались добавить session required pam_limits.so в /etc/pam.d/common-session , но безрезультатно.

1 ответ1

1

Настройки в /etc/security/limits.conf не работают внутри chroot, потому что нет программы, использующей pam_limits для их установки. Они работают, когда вы используете sudo, потому что конфигурация sudo PAM вызывает pam_limits.

Очевидный ответ заключается в том, чтобы вызвать что-то внутри chroot, которое использует pam_limits, например "su", как они говорят здесь: https://lists.debian.org/debian-user/2010/09/msg01398.html (хотя вы должны раскомментируйте строку, которая использует pam_limits в /etc/pam.d/su, потому что она поставляется с комментариями по умолчанию).

Т.е., предполагая, что ваш каталог chroot - /srv /chroot, и вы хотите выполнить /usr /bin /python, вы можете попробовать что-то вроде этого:

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

Я думаю, что sudo тоже добьется цели:

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

Но я могу говорить только за "су", что я и использую в таком случае. Пожалуйста, попробуйте и скажите, сработало ли это для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .