да, я знаю, что этот вопрос задавали много раз, но, к сожалению, я не нашел на него полного ответа.
Итак, как ограничить количество одновременных процессов на пользователя?
я нашел два решения:
используя pam_limits. в этом случае мне нужно настроить файл /etc/security/limits.conf. К сожалению, это решение работает только для приложений, поддерживающих pam, то есть не универсально.
используя ulimit, вызываемый из $ HOME / profile. К сожалению, это работает не во всех случаях. Я попытался установить «ulimit -u 100», а затем запустил в той же оболочке «stress --vm 200 --vm - bytes 100». приложение было успешно запущено, и я получил более 200 процессов под пользователем root.
мне нужно создать надежную систему, поэтому решения, которые работают только в некоторых случаях, не подходят.
Патч безопасности ядра grsecurity есть функция под названием Enforce RLMIT_NPROC on execs
. Когда он включен, он обеспечивает общесистемные ограничения для каждого пользователя, а не для входа в систему (или, что еще хуже, как вы заметили).
Вы можете установить лимиты в /etc/security/limits.conf
В той же оболочке работать не будет. Попробуйте поместить настройку ulimit в ваш .bashrc root, снова войдите в систему как root и попробуйте. Вы можете проверить с помощью ulimit -a для проверки.