limits.conf (Русский)

From ArchWiki

Перевод этой статьи или раздела не отражает оригинальное содержание.

Причина: Невычитанная копипаста из переводчика DeepL. (Discuss)

/etc/security/limits.conf позволяет устанавливать ограничения на ресурсы для пользователей, вошедших в систему через PAM. Это полезный способ предотвратить, например fork-bombs от использования всех системных ресурсов.

Note: Этот файл не влияет на работу системных служб. Для служб systemd лимитом управляют файлы /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        # Требуется для запуска некоторых игр.
Warning: Слишком большое или неограниченное значение может привести к поломке некоторых инструментов, например fakeroot.

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.