PAM limits: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 5: | Строка 5: | ||
Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье. | Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье. | ||
Настройка лимитов, накладываемых PAM, хранится в | Настройка лимитов, накладываемых PAM, хранится в специальных файлах конфигурации в каталоге {{path|/etc/security/limits.d/}}. | ||
Обычно в данном каталоге уже находятся конфигурационные файлы: | |||
<source lang="bash"> | |||
# ls /etc/security/limits.d/ | |||
25-pw-rlimits.conf 50-defaults.conf 90-desktop.conf 90-samba.conf 95-alterator-limits.conf | |||
</source> | |||
Для создания новой конфигурации нужно перейти в каталог настройками и создать новый файл: | |||
<source lang="bash"> | |||
# cd /etc/security/limits.d/ | |||
# mcedit 10-user-limits.conf | |||
</source> | |||
Приоритет применения конфигураций идет по убыванию: | |||
*от 0 до 9; | |||
*от A до Z; | |||
*от a до z. | |||
{{Attention|При создании новых конфигураций рекомендуется давать название соответствующей цели (области) применения, например, 30-cpu-time-limits.conf}} | |||
Пример файла: | Пример файла: | ||
Строка 17: | Строка 36: | ||
В каждом столбце описывается конкретное значение: | В каждом столбце описывается конкретное значение: | ||
*domain - кто из пользователей будет ограничен. | *domain - кто из пользователей будет ограничен. | ||
*type - тип ограничения. | |||
*item - параметр, который нужно ограничить. | |||
*value - значение | |||
*type - тип ограничения | |||
* | |||
* | |||
{|class="wikitable" style="float:center; margin-left:2em" | |||
!rowspan="5"|domain | |||
|- | |||
!область<br>применения || описание || пример | |||
|- | |||
|все || звездочка || <nowiki>*</nowiki> | |||
|- | |||
|пользователь || имя пользователя || admin | |||
|- | |||
|группа || название группы через символ at || @students | |||
|- | |||
!rowspan="4"|type | |||
|- | |||
!тип ограничения | |||
!colspan="2"| описание | |||
|- | |||
|soft | |||
|colspan="2"| мягкое ограничение, не запрещающее, а предупреждающее. | |||
|- | |||
|hard | |||
|colspan="2"| жёсткое, запрещающее ограничение. | |||
|} | |||
Приложение умеющее обрабатывать 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 || Попытка перевода | ||
Строка 69: | Строка 106: | ||
|rtprio || max realtime priority || максимальный приоритет времени выполнения; | |rtprio || max realtime priority || максимальный приоритет времени выполнения; | ||
|} | |} | ||
==Советы при настройке== | ==Советы при настройке== |
Версия от 16:13, 25 мая 2023
Описание
В Linux для аутентификации пользователей используется подсистема – PAM (Pluggable Authentication Modules). PAM используется везде, где требуется аутентификация пользователя или проверка его прав.
Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье.
Настройка лимитов, накладываемых PAM, хранится в специальных файлах конфигурации в каталоге /etc/security/limits.d/.
Обычно в данном каталоге уже находятся конфигурационные файлы:
# ls /etc/security/limits.d/
25-pw-rlimits.conf 50-defaults.conf 90-desktop.conf 90-samba.conf 95-alterator-limits.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 | жёсткое, запрещающее ограничение. |
Приложение умеющее обрабатывать soft должно выдать предупреждение, о том что его процесс приблизился к лимиту. Если нет, то для такого приложения и 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
Чтобы узнать, сколько файлов нужно пользователю, установите утилиту lsof.
# apt-get install lsof
Откройте все программы, которые Вам нужны.
Посмотрите количество открытых файлов:
$ lsof -u user | wc -l 5811
nproc
Чтобы узнать количество запущенных процессов:
- Откройте все программы, которые Вам нужны
- Введите команду:
$ ps -e | wc -l
Конфигурация для настольных систем
Если у Вас при открытии большого числа приложений возникают проблемы (например, закладки в браузере не загружаются или вызывают сбой, текстовый редактор открывается когда хочет, или вообще не запускается, или вылетает и т.п.), значит у Вас не установлена настройка лимитов для настольных систем. Обычно, в дистрибутивах устанавливаются нормальные лимиты, пригодные для пользователя, но если Вы используете, например, Starterkit, в системе установлен довольно небольшой лимит на количество процессов. Для сервера это оправдано, а графическая среда пользователя плодит их в огромном количестве.
Для исправления ситуации, нужно установить пакет pam-limits-desktop:
# apt-get install pam-limits-desktop