Файлы каталога /etc/pam.d/*#
Каталог /etc/pam.d/* используется для хранения конфигурационных файлов PAM для конкретных служб и сервисов. Конфигурационные файлы определяют алгоритм обработки служебных запросов, используя заданную последовательность модулей.
Система по умолчанию использует файлы конфигурации в каталоге /etc/pam.d/*. Если каталог отсутствует, система будет применять единый файл конфигурации pam.conf.
Файлы конфигурации в каталоге содержат строки следующего вида:
<type> <control> <module-path> <module-arguments>
Где:
<type>- тип модуля;<control>- управляющая директива, задающая способ вызова;<module-path>- полный путь к модулю или полное имя модуля;<module-arguments>- аргументы модуля.
Существует четыре различных типа модулей, представленных в таблице ниже.
Тип модуля |
Описание |
|---|---|
|
Аутентификация. Подтверждает, что пользователь тот, за кого себя выдает, запрашивая пароль или иной ключ аутентификации и сравнивая со значением в базе данных. Устанавливает данные учетной записи |
|
Управление учетной записью. Проверяет, истек ли срок действия пароля, существуют ли ограничения часов доступа. После идентификации определяет предоставлен ли доступ к определенным сервисам |
|
Управление паролем. Используется для смены ключа аутентификации по запросу или по истечению срока действия и проверки на соблюдение парольной политики |
|
Управление сеансами. Выполняет задачи во время входа или выхода пользователя, например: аудит и т.д. |
Конфигурационный файл может содержать строки как одного, так и нескольких типов модулей в зависимости от конкретной службы или сервиса.
Модули поддерживают следующие управляющие директивы:
Управляющая директива |
Описание |
|---|---|
|
Запрос выполняется успешно, если модуль не выдает ошибок. В случае, если проверка модуля завершилось с ошибкой, продолжится проверка других модулей, указанных в конфигурационном файле, но в итоге запрос будет отклонен |
|
Модуль должен быть успешно проверен, чтобы запрос выполнился успешно. В ином случае выполнение запроса будет немедленно прервано |
|
В случае, если модуль проверен успешно, выполнение запроса будет зависеть от статуса проверки модулей с директивами |
|
Результат проверки модуля игнорируется |
Также существуют две дополнительные управляющие директивы include и substack, позволяющие включать строки с определенными типами модуля из одного файла конфигурации в другой. Добавленные модули будут обработаны в том порядке, в котором расположены в исходном файле. Если при использовании директивы substack проверка одного из включаемых модулей с действиями done или die завершится с ошибкой, остальные модули будут проверены.
Иные управляющие директивы настраиваются с помощью следующего синтаксиса:
[value1=action1 value2=action2 ...]
Где:
valueNсоответствует коду возврата из функции, вызванной в модуле, для которого определена строка. Выбирается одно из следующих:success,open_err,symbol_err,service_err,system_err,buf_err,perm_denied,auth_err,cred_insufficient,authinfo_unavail,user_unknown,maxtries,new_authtok_reqd,acct_expired,session_err,cred_unavail,cred_expired,cred_err,no_module_data,conv_err,authtok_err,authtok_recover_err,authtok_lock_busy,authtok_disable_aging,try_again,ignore,abort,authtok_expired,module_unknown,bad_item,conv_again,incomplete, иdefault;actionNможет быть целым числомn, означающим действие «перескочить через следующиеnмодулей в наборе», или одним из значений, указанных в таблице ниже.
Значение |
Описание |
|---|---|
|
Указание на то, что при использовании с несколькими модулями статус возврата текущего модуля не будет влиять на код возврата |
|
Код возврата будет рассматриваться как признак сбоя модуля. Если модуль с данным действием выйдет из строя первым в наборе, то значение кода возврата будет применено к другим модулям |
|
Действие аналогично |
|
Код возврата модуля должен непосредственно влиять на коды возврата всего набора модулей, переопределяя предыдущие значения. Значения не будут переопределены, если указывают на сбой при выполнении модуля |
|
Действие аналогично |
|
Действие очищает данные о состоянии набора модулей и начинает собирать заново со следующего модуля |
Каждую из четырех стандартных управляющих директив можно представить в виде синтаксиса и использовать в конфигурационном файле.
Управляющая директива |
Синтаксис директивы |
|---|---|
|
|
|
|
|
|
|
|
Модули PAM располагаются в каталогах lib/security или /lib64/security.
Аргументы различны и задокументированы для каждого конкретного модуля. Обратите внимание: при необходимости добавления в аргумент пробелов, он должен быть заключен в квадратные скобки - ..[..]...
Пример конфигурационных файлов /etc/pam.d/vlock:
auth include system-auth
account required pam_permit.so