PAM limits: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье.
Так же PAM настраивает ограничения (лимиты) пользователей и групп на использование системных ресурсов. Для этого у него есть специальный модуль "Pam Limits", который мы разберем в данной статье.


Настройка лимитов, накладываемых PAM, хранится в специальном файле конфигурации - /etc/security/limits.conf. Для изменения лимитов нужно отредактировать данный файл.
Настройка лимитов, накладываемых 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 - кто из пользователей будет ограничен.
**все - пишем <nowiki>*</nowiki>
*type - тип ограничения.
**пользователь - пишем имя - admin
*item - параметр, который нужно ограничить.
**группа - пишем имя группы через собачку - @students
*value - значение
*type - тип ограничения
**soft - мягкое ограничение, не запрещающее а предупреждающее.  
**hard - жёсткое, запрещающее ограничение.


Приложение умеющее обрабатывать soft должно выдать предупреждение, о том что его процесс приблизился к лимиту. А если приложение не умеет обрабатывать soft, то для такого приложения и soft и hard сработают одинаково, то есть не дадут процессу получить запрашиваемый ресурс.
{|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"| жёсткое, запрещающее ограничение.
|}


*item - В третьей колонке пишется параметр, который нужно ограничить, например:
Приложение умеющее обрабатывать 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 || максимальный приоритет времени выполнения;
|}
|}
*value - значение


==Советы при настройке==
==Советы при настройке==

Версия от 13:13, 25 мая 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Описание

В 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.
Внимание! При создании новых конфигураций рекомендуется давать название соответствующей цели (области) применения, например, 30-cpu-time-limits.conf


Пример файла:

# <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