limits.conf (Русский)
/etc/security/limits.conf
позволяет устанавливать ограничения на ресурсы для пользователей, вошедших в систему через PAM. Это полезный способ предотвратить, например fork-bombs от использования всех системных ресурсов.
/etc/systemd/system.conf
, /etc/systemd/user.conf
, и /etc/systemd/system/unit.d/override.conf
. Подробности см. на странице systemd-system.conf(5) man page for details.Синтаксис
Файл по умолчанию хорошо прокомментирован, но дополнительную информацию можно получить, просмотрев страницу limits.conf(5) man page.
Рекомендации
core
Corefiles полезны для отладки, но раздражают при обычном использовании системы. Вам следует установить мягкое ограничение 0 и жесткое ограничение неограниченное, а затем временно повышать ограничение для текущей оболочки с помощью ulimit -c unlimited
когда вам нужны corefiles для отладки.
* soft core 0 # Запретить генерировать corefiles по умолчанию. * hard core unlimited # Позволяет временно включать core файлы.
nice
Вы должны запретить всем, кроме root, иметь процессы с минимальной доброжелательностью (-20), чтобы root мог исправить неотзывчивую систему.
* hard nice -19 # Запретитm пользователям, не являющимся root-пользователями, запускать процесс с минимальным значением. root hard nice -20 # Позволяет root запустить процесс на минимальном уровне, чтобы исправить ситуацию, когда система не реагирует на запросы.
nofile
Это ограничивает количество файловых дескрипторов, которые могут быть открыты в любой момент времени у процесса, принадлежащего указанному домену. Вам может потребоваться увеличить это значение до 8192
для работы некоторых игр. Некоторые приложения баз данных, такие как MongoDB или Apache Kafka, рекомендуют устанавливать nofile
на 64000
или 128000
[1].
* hard nofile 65535 * soft nofile 8192 # Требуется для запуска некоторых игр.
nproc
Ограничение nproc очень важно, поскольку оно ограничивает количество раз, которое может повторить бомба-вилка. Однако слишком низкое значение может сделать вашу систему нестабильной или даже непригодной для использования, поскольку новые процессы не смогут создаваться.
Значение 300
слишком мало даже для самых минимальных Window-менеджеров, чтобы запустить больше нескольких настольных приложений и демонов, но часто подходит для серверов без X (на самом деле, 300
это значение, которое факультет компьютерных наук Университета Джорджии использовал для ограничения процессов для студентов на своих Linux-серверах в 2017 году).
Вот пример ограничения nproc для всех пользователей системы:
* hard nproc 2048 # Не позволяйте вилочным бомбам вывести систему из строя.
Обратите внимание, что это значение 2048
всего лишь пример, и вам может понадобиться установить более высокое значение. С другой стороны, вы можете обойтись и более низким значением.
Какое бы значение nproc вы ни установили, не забудьте разрешить пользователю root создавать столько процессов, сколько он захочет; в противном случае вы можете сделать систему неработоспособной, установив обычный лимит nproc слишком низким. Обратите внимание, что эта строка должна идти после глобального hardlimit, а значение ниже (65536
) является произвольным.
root hard nproc 65536 # Предотвращение того, что root не может запустить достаточное количество процессов.
приоритет
Обычно по умолчанию "niciness" должен быть равен 0, но вы можете установить для отдельных пользователей и групп разные приоритеты по умолчанию с помощью этого параметра.
* soft priority 0 # Установите приоритет по умолчанию на нейтральную niceness.