PAM limits: различия между версиями
м (→Описание) |
|||
(не показано 14 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
В Linux для аутентификации пользователей используется подсистема | {{stub}} | ||
== Описание == | |||
В Linux для аутентификации пользователей используется подсистема — '''PAM''' (''Pluggable Authentication Modules''). PAM используется везде, где требуется аутентификация пользователя и/или проверка его прав. | |||
Также PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов модулем "'''PAM Limits'''". | |||
Настройка лимитов, накладываемых PAM, хранится в | Настройка лимитов, накладываемых PAM, хранится в специальных файлах конфигурации в каталоге {{path|/etc/security/limits.d/}}. | ||
Пример файла: | Обычно в данном каталоге уже присутствует конфигурационный файл: | ||
< | <syntaxhighlight lang="bash"> | ||
# ls /etc/security/limits.d/ | |||
50-defaults.conf | |||
</syntaxhighlight> | |||
Для создания новой конфигурации нужно перейти в каталог с настройками и создать новый файл: | |||
<syntaxhighlight lang="bash"> | |||
# cd /etc/security/limits.d/ | |||
# mcedit 10-user-limits.conf | |||
</syntaxhighlight> | |||
Приоритет применения конфигураций идет по убыванию (в лексикографическом порядке): | |||
*от 0 до 9; | |||
*от A до Z; | |||
*от a до z. | |||
{{Attention|При создании новых конфигураций рекомендуется давать название соответствующей цели (области) применения, например, {{path|30-cpu-time-limits.conf}}.}} | |||
Пример содержимого такого файла: | |||
<syntaxhighlight lang="ini"> | |||
# <domain> <type> <item> <value> | # <domain> <type> <item> <value> | ||
* soft core 0 | * soft core 0 | ||
user hard rss 10000 | user hard rss 10000 | ||
@student soft nproc 50 | @student soft nproc 50 | ||
</ | </syntaxhighlight> | ||
В каждом столбце | В каждом столбце указывается конкретное значение: | ||
*domain | *domain — область действия; | ||
*type — тип ограничения; | |||
*item — параметр, который нужно ограничить; | |||
*value — значение. | |||
*type | |||
* | |||
* | |||
{|class="wikitable" style="float:center; margin-left:2em" | |||
!rowspan="9"|domain | |||
|- | |||
!область<br>действия || описание || пример | |||
|- | |||
|все || звездочка || <nowiki>*</nowiki> | |||
|- | |||
|пользователь || имя пользователя || admin | |||
|- | |||
|группа || название группы через символ at || @students | |||
|- | |||
|группа для <br> параметра maxlogins || название группы через знак процента<br>использование % без указания группы аналогично "maxsyslogins" с * || %buh<br>% | |||
|- | |||
|gid для <br> параметра maxlogins || идентификатор группы через знак процента || %:<gid> | |||
|- | |||
|диапазон uid || диапазон идентификаторов пользователей для ограничения || <min_uid>:<max_uid> | |||
|- | |||
|диапазон gid || диапазон идентификаторов групп для ограничения || @<min_gid>:<max_gid> | |||
|- | |||
!rowspan="4"|type | |||
|- | |||
!тип ограничения | |||
!colspan="2"| описание | |||
|- | |||
|soft | |||
|colspan="2"| мягкое ограничение, не запрещающее, а предупреждающее. | |||
|- | |||
|hard | |||
|colspan="2"| жёсткое, запрещающее ограничение. | |||
|} | |||
{{Attention|Приложение умеющее обрабатывать soft должно выдать предупреждение, о том что его процесс приблизился к лимиту. Если нет, то для такого приложения и soft и hard сработают одинаково, то есть не дадут процессу получить запрашиваемый ресурс.}} | |||
{|class="wikitable" style="float:center; margin-left:2em" | {|class="wikitable" style="float:center; margin-left:2em" | ||
!colspan="3"| | !colspan="3"|Значения item | ||
|- | |- | ||
!Параметр || English || | !Параметр || English || Комментарий | ||
|- | |- | ||
|core || limits the core file size (KB) || | |core || limits the core file size (KB) || ограничение размера файла core (Кбайт) | ||
|- | |- | ||
|data || max data size (KB) || максимальный размер данных ( | |data || max data size (KB) || максимальный размер данных (Кбайт) | ||
|- | |- | ||
|fsize || maximum filesize (KB) || максимальный размер файла ( | |fsize || maximum filesize (KB) || максимальный размер файла (Кбайт) | ||
|- | |- | ||
|memlock || max locked-in-memory address space (KB) || максимальное заблокированное адресное пространство ( | |memlock || max locked-in-memory address space (KB) || максимальное заблокированное адресное пространство (Кбайт) | ||
|- | |- | ||
|nofile || max number of open file descriptors || максимальное | |nofile || max number of open file descriptors || максимальное число открытых файлов | ||
|- | |- | ||
| | |stack || max stack size (KB) || максимальный размер стека (Кбайт); | ||
|- | |- | ||
| | |rss || max resident set size (KB) || максимальный размер памяти для резидент-программ (Кбайт) | ||
|- | |- | ||
|cpu || max CPU time (MIN) || максимальное | |cpu || max CPU time (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 || максимальное количество сигналов, которые можно передать процессу | ||
|- | |- | ||
|msgqueue || max memory used by POSIX message queues (bytes) || максимальный размер памяти для очереди POSIX | |msgqueue || max memory used by POSIX message queues (bytes) || максимальный размер памяти для очереди POSIX сообщений (байт) | ||
|- | |- | ||
|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=== | ===nofile=== | ||
{{Note| | |||
Вам понадобится утилита lsof: | |||
<syntaxhighlight lang="bash"> | |||
# apt-get install lsof | |||
</syntaxhighlight> | |||
}} | |||
Для ориентировочной оценки количества открытых файлов выполните команду: | |||
<syntaxhighlight lang="bash"> | |||
$ lsof -u user | wc -l | $ lsof -u user | wc -l | ||
5811 | 5811 | ||
</syntaxhighlight> | |||
===nproc=== | ===nproc=== | ||
Для ориентировочной оценки количества запущенных процессов выполните команду: | |||
<source lang="bash"> | |||
$ ps -e | wc -l | $ ps -e | wc -l | ||
</source> | |||
[[Категория:PAM]] | |||
Текущая версия от 14:44, 26 мая 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 |
группа для параметра maxlogins |
название группы через знак процента использование % без указания группы аналогично "maxsyslogins" с * |
%buh % |
gid для параметра maxlogins |
идентификатор группы через знак процента | %:<gid> |
диапазон uid | диапазон идентификаторов пользователей для ограничения | <min_uid>:<max_uid> |
диапазон gid | диапазон идентификаторов групп для ограничения | @<min_gid>:<max_gid> |
type | ||
тип ограничения | описание | |
soft | мягкое ограничение, не запрещающее, а предупреждающее. | |
hard | жёсткое, запрещающее ограничение. |
Значения item | ||
---|---|---|
Параметр | English | Комментарий |
core | limits the core file size (KB) | ограничение размера файла core (Кбайт) |
data | max data size (KB) | максимальный размер данных (Кбайт) |
fsize | maximum filesize (KB) | максимальный размер файла (Кбайт) |
memlock | max locked-in-memory address space (KB) | максимальное заблокированное адресное пространство (Кбайт) |
nofile | max number of open file descriptors | максимальное число открытых файлов |
stack | max stack size (KB) | максимальный размер стека (Кбайт); |
rss | max resident set size (KB) | максимальный размер памяти для резидент-программ (Кбайт) |
cpu | max CPU time (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 сообщений (байт) |
nice | max nice priority allowed to raise to values: [-20, 19] | максимальный приоритет, который можно выставить: [-20, 19] |
rtprio | max realtime priority | максимальный приоритет времени выполнения |
Советы по настройке
Запустите все программы, необходимые в работе.
nofile
Вам понадобится утилита lsof:
# apt-get install lsof
Для ориентировочной оценки количества открытых файлов выполните команду:
$ lsof -u user | wc -l
5811
nproc
Для ориентировочной оценки количества запущенных процессов выполните команду:
$ ps -e | wc -l