Файл конфигурации PAM
Файл конфигурации /etc/pam.conf содержит записи для каждого типа модулей PAM и служит для определения алгоритма обработки служебных запросов с помощью заданной последовательности модулей.
имя-службы тип-модуля управляющий-флаг полное-имя-модуля опции-модуляНиже приведены описания этих полей:имя-службы- Задает имя службы. Для определения модуля по умолчанию, используемого приложениями, которые не указаны в записи, применяется ключевое слово OTHER.
тип-модуля- Задает тип модуля. Допустимы следующие типы: auth, account, session и password. Модуль обеспечивает поддержку одного или нескольких типов.
управляющий-флаг- Задает способ вызова модуля. Поддерживаются следующие флаги: required, requisite, sufficient и optional.
полное-имя-модуляЗадает модуль, загружаемый для службы. Допустимыми значениями для
путь-к-модулюявляются полный путь к модулю или только имя модуля. Если задан полный путь к модулю, библиотека PAM использует этотпуть-к-модулюдля загрузки 32-разрядных служб или использует 64 подкаталога для 64-разрядных служб. Если полный путь к модулю не задан, то библиотека PAM добавляет к имени модуля префикс /usr/lib/security (для 32-разрядных служб) или /usr/lib/security/64 (для 64-разрядных служб).опции-модуля- Задает ограниченный по объему список опций для передачи модулям. Допустимые в
этом поле значения зависят от того, какие опции поддерживаются модулем,
заданным в поле
полное-имя-модуля. Это необязательное поле.
Записи, указанные в неправильном формате или содержащие неправильные значения в полях тип-модуля или управляющий-флаг, игнорируются библиотекой PAM. Записи, начинающиеся с символа решетки (#), считаются комментариями и игнорируются.
PAM поддерживает принцип стека, позволяющий службе применять несколько механизмов. Стек реализуется путем создания в файле конфигурации нескольких записей с одинаковым значением поля тип-модуля. Модули вызываются в том порядке, в котором они перечислены в файле для отдельной службы; результат вызова определяется по значению поля управляющий-флаг для каждой записи. Ниже перечислены допустимые значения поля управляющий-флаг с указанием соответствующих действий, выполняемых в стеке:
| Значение поля control_flag | Поведение |
|---|---|
| обязательный | Обязательный. Для получения положительного результата проверка должна быть успешно выполнена всеми обязательными модулями. Если от одного или нескольких обязательных модулей будет получено сообщение об отрицательном результате, то будет предпринята попытка проверки с помощью всех обязательных модулей, но будет возвращено первое полученное сообщение об ошибке. |
| requisite | Необходимый. Аналогично значению required, за исключением того, что если от необходимого модуля будет получено сообщение об отрицательном результате, следующие модули в стеке не выполняются, и немедленно возвращается первый код ошибки от обязательного или необходимого модуля. |
| sufficient | Достаточный. Если модуль, помеченный как достаточный, успешно провел проверку, и при этом все предыдущие обязательные и достаточные модули не обнаружили ошибок, то все остальные модули игнорируются и возвращается сообщение о положительном результате проверки. |
| optional | Необязательный. Если в стеке нет обязательных модулей и ни один из достаточных модулей не вернул сообщение об успешной проверке, то для получения положительного результата необходимо, чтобы хотя бы один из необязательных модулей успешно провел проверку. Если какой-либо другой модуль вернул сообщение об успешной проверке, то отрицательный результат необязательного модуля игнорируется. |
#
# Файл конфигурации PAM /etc/pam.conf
#
# Управление идентификацией
login auth required /usr/lib/security/pam_ckfile file=/etc/nologin
login auth required /usr/lib/security/pam_aix
login auth optional /usr/lib/security/pam_test use_first_pass
OTHER auth required /usr/lib/security/pam_prohibit
Пример файла конфигурации содержит три записи для службы входа в систему. Поскольку модули pam_ckfile и pam_aix определены как
обязательные, для успешного выполнения операции оба модуля должны отработать успешно.
Третий модуль pam_test указан как необязательный. Результат
проверки с помощью этого модуля не повлияет на возможность входа пользователя в
систему. Опция use_first_pass модуля
pam_test требует использовать пароль, введенный при
обращении к предыдущему модулю, не запрашивая у пользователя новый пароль.Указание в качестве имени службы ключевого слова OTHER позволяет задать значения по умолчанию для всех служб, не указанных явно в файле конфигурации. Настройка значений по умолчанию гарантирует, что в любой ситуации будет вызван по крайней мере один модуль данного типа. В данном случае все службы, кроме службы входа в систему, не будут работать, поскольку все вызовы модуля pam_prohibit возвращают ошибку PAM.