PAM limits: различия между версиями
Строка 10: | Строка 10: | ||
<source lang="bash"> | <source lang="bash"> | ||
# ls /etc/security/limits.d/ | # ls /etc/security/limits.d/ | ||
50-defaults.conf | |||
</source> | </source> | ||
Строка 19: | Строка 19: | ||
</source> | </source> | ||
Приоритет применения конфигураций идет по убыванию: | Приоритет применения конфигураций идет по убыванию(Лексикографический порядок): | ||
*от 0 до 9; | *от 0 до 9; | ||
*от A до Z; | *от A до Z; | ||
Строка 26: | Строка 26: | ||
{{Attention|При создании новых конфигураций рекомендуется давать название соответствующей цели (области) применения, например, 30-cpu-time-limits.conf}} | {{Attention|При создании новых конфигураций рекомендуется давать название соответствующей цели (области) применения, например, 30-cpu-time-limits.conf}} | ||
Пример файла: | Пример содержимого такого файла: | ||
<pre> | <pre> | ||
# <domain> <type> <item> <value> | # <domain> <type> <item> <value> | ||
Строка 34: | Строка 34: | ||
</pre> | </pre> | ||
В каждом столбце | В каждом столбце указывается конкретное значение: | ||
*domain - | *domain - область действия | ||
*type - тип ограничения | *type - тип ограничения | ||
*item - параметр, который нужно ограничить | *item - параметр, который нужно ограничить | ||
*value - значение | *value - значение | ||
Строка 43: | Строка 43: | ||
!rowspan="5"|domain | !rowspan="5"|domain | ||
|- | |- | ||
!область<br> | !область<br>действия || описание || пример | ||
|- | |- | ||
|все || звездочка || <nowiki>*</nowiki> | |все || звездочка || <nowiki>*</nowiki> | ||
Строка 63: | Строка 63: | ||
|} | |} | ||
Приложение умеющее обрабатывать soft должно выдать предупреждение, о том что его процесс приблизился к лимиту. Если нет, то для такого приложения и soft и hard сработают одинаково, то есть не дадут процессу получить запрашиваемый ресурс. | {{Attention|Приложение умеющее обрабатывать soft должно выдать предупреждение, о том что его процесс приблизился к лимиту. Если нет, то для такого приложения и soft и hard сработают одинаково, то есть не дадут процессу получить запрашиваемый ресурс.}} | ||
{|class="wikitable" style="float:center; margin-left:2em" | {|class="wikitable" style="float:center; margin-left:2em" | ||
!colspan="3"|Значения item | !colspan="3"|Значения item | ||
|- | |- | ||
!Параметр || English || | !Параметр || English || Комментарий | ||
|- | |- | ||
|core || limits the core file size (KB) || размер core-файлов (KB) | |core || limits the core file size (KB) || размер core-файлов (KB) | ||
Строка 80: | Строка 80: | ||
|nofile || max number of open file descriptors || максимальное количество открытых файлов | |nofile || max number of open file descriptors || максимальное количество открытых файлов | ||
|- | |- | ||
|rss || max resident set size (KB) || максимальный размер памяти для резидент-программ (KB) | |rss || max resident set size (KB) || максимальный размер памяти для резидент-программ (KB) | ||
|- | |- | ||
|stack || max stack size (KB) || максимальный размер стэка (KB); | |stack || max stack size (KB) || максимальный размер стэка (KB); | ||
Строка 86: | Строка 86: | ||
|cpu || max CPU time (MIN) || максимальное процессорное время (MIN) | |cpu || max CPU time (MIN) || максимальное процессорное время (MIN) | ||
|- | |- | ||
|nproc || max number of processes || максимальное количество процессов | |nproc || max number of processes || максимальное количество процессов | ||
|- | |- | ||
|as || address space limit (KB) || ограничение адресного пространства (KB) | |as || address space limit (KB) || ограничение адресного пространства (KB) | ||
|- | |- | ||
|maxlogins || max number of logins for this user || максимальное число одновременных регистраций в системе | |maxlogins || max number of logins for this user || максимальное число одновременных регистраций в системе | ||
|- | |- | ||
|maxsyslogins || max number of logins on the system || максимальное количество учётных записей | |maxsyslogins || max number of logins on the system || максимальное количество учётных записей | ||
|- | |- | ||
|priority || the priority to run user process with || приоритет запущенных процессов | |priority || the priority to run user process with || приоритет запущенных процессов | ||
|- | |- | ||
|locks || max number of file locks the user can hold || максимальное количество блокируемых пользователем файлов | |locks || max number of file locks the user can hold || максимальное количество блокируемых пользователем файлов | ||
|- | |- | ||
|sigpending || max number of pending signals || максимальное количество сигналов, которые можно передать процессу | |sigpending || max number of pending signals || максимальное количество сигналов, которые можно передать процессу | ||
Строка 104: | Строка 104: | ||
|nice || max nice priority allowed to raise to values: [-20, 19] || максимальный приоритет, который можно выставить: [-20, 19] | |nice || max nice priority allowed to raise to values: [-20, 19] || максимальный приоритет, который можно выставить: [-20, 19] | ||
|- | |- | ||
|rtprio || max realtime priority || максимальный приоритет времени выполнения | |rtprio || max realtime priority || максимальный приоритет времени выполнения | ||
|} | |} | ||
==Советы | ==Советы по настройке== | ||
Запустите все программы, необходимые в работе. | |||
===nofile=== | |||
= | {{Note| | ||
<source lang="bash"> | |||
# apt-get install lsof | |||
</source> | |||
}} | |||
Для ориентировочной оценки количества открытых файлов: | |||
<source lang="bash"> | |||
$ lsof -u user | wc -l | $ lsof -u user | wc -l | ||
5811 | 5811 | ||
</source> | |||
===nproc=== | ===nproc=== | ||
Для ориентировочной оценки количества запущенных процессов: | |||
<source lang="bash"> | |||
$ ps -e | wc -l | $ ps -e | wc -l | ||
</source> |
Версия от 17:00, 25 мая 2023
Описание
В Linux для аутентификации пользователей используется подсистема – PAM (Pluggable Authentication Modules). PAM используется везде, где требуется аутентификация пользователя или проверка его прав.
Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье.
Настройка лимитов, накладываемых PAM, хранится в специальных файлах конфигурации в каталоге /etc/security/limits.d/.
Обычно в данном каталоге уже находятся конфигурационные файлы:
# ls /etc/security/limits.d/
50-defaults.conf
Для создания новой конфигурации нужно перейти в каталог настройками и создать новый файл:
# cd /etc/security/limits.d/
# mcedit 10-user-limits.conf
Приоритет применения конфигураций идет по убыванию(Лексикографический порядок):
- от 0 до 9;
- от A до Z;
- от a до z.
Пример содержимого такого файла:
# <domain> <type> <item> <value> * soft core 0 user hard rss 10000 @student soft nproc 50
В каждом столбце указывается конкретное значение:
- domain - область действия
- type - тип ограничения
- item - параметр, который нужно ограничить
- value - значение
domain | ||
---|---|---|
область действия |
описание | пример |
все | звездочка | * |
пользователь | имя пользователя | admin |
группа | название группы через символ at | @students |
type | ||
тип ограничения | описание | |
soft | мягкое ограничение, не запрещающее, а предупреждающее. | |
hard | жёсткое, запрещающее ограничение. |
Значения item | ||
---|---|---|
Параметр | English | Комментарий |
core | limits the core file size (KB) | размер core-файлов (KB) |
data | max data size (KB) | максимальный размер данных (KB) |
fsize | maximum filesize (KB) | максимальный размер файла (KB) |
memlock | max locked-in-memory address space (KB) | максимальное заблокированное адресное пространство (KB) |
nofile | max number of open file descriptors | максимальное количество открытых файлов |
rss | max resident set size (KB) | максимальный размер памяти для резидент-программ (KB) |
stack | max stack size (KB) | максимальный размер стэка (KB); |
cpu | max CPU time (MIN) | максимальное процессорное время (MIN) |
nproc | max number of processes | максимальное количество процессов |
as | address space limit (KB) | ограничение адресного пространства (KB) |
maxlogins | max number of logins for this user | максимальное число одновременных регистраций в системе |
maxsyslogins | max number of logins on the system | максимальное количество учётных записей |
priority | the priority to run user process with | приоритет запущенных процессов |
locks | max number of file locks the user can hold | максимальное количество блокируемых пользователем файлов |
sigpending | max number of pending signals | максимальное количество сигналов, которые можно передать процессу |
msgqueue | max memory used by POSIX message queues (bytes) | максимальный размер памяти для очереди POSIX-сообщений (bytes) |
nice | max nice priority allowed to raise to values: [-20, 19] | максимальный приоритет, который можно выставить: [-20, 19] |
rtprio | max realtime priority | максимальный приоритет времени выполнения |
Советы по настройке
Запустите все программы, необходимые в работе.
nofile
# apt-get install lsof
Для ориентировочной оценки количества открытых файлов:
$ lsof -u user | wc -l
5811
nproc
Для ориентировочной оценки количества запущенных процессов:
$ ps -e | wc -l