Модульный подход в PAM позволяет объединить разных провайдеров аутентификации и предоставить свой API приложениям. serverspace.ru PAM используется везде, где требуется аутентификация пользователя или проверка его прав, например, при подключении через SSH или FTP, а также при повышении привилегий через команду sudo. habr.com
PAM делит модули на различные категории в зависимости от того, в какой части процесса они участвуют: www.8host.com
- Модули аутентификации (Authentication). www.8host.com Проверяют валидность учётных данных пользователя. www.8host.com
- Модули аккаунтов (Account). www.8host.com Решают, имеет ли учётная запись, которая пытается войти в систему, доступ к запрашиваемым ресурсам. www.8host.com
- Модули сеансов (Session). www.8host.com Устанавливают окружение для работы пользователя, который проходит аутентификацию. www.8host.com Файлы сессий позволяют определить команды, которые нужно запустить для подготовки среды. www.8host.com
- Модули паролей (Password). www.8host.com Такие модули отвечают за обновление учётных данных. www.8host.com Если сервис должен обновить пароль, этот модуль свяжется с ним и внесёт соответствующие изменения в данные. www.8host.com
Когда приложение запрашивает аутентификацию, PAM считывает соответствующий конфигурационный файл. www.8host.com Конфигурационные файлы содержат списки модулей PAM и методы их обработки. www.8host.com Модули вызываются по очереди. www.8host.com Каждый вызов модуля генерирует успешный результат или отказ. www.8host.com Исходя из этих значений, конфигурационный файл возвращает либо сообщение об успешной аутентификации, либо сообщение об ошибке. www.8host.com
Некоторые флаги контроля, которые определяют требование к результату аутентификации:
- Required — указанный модуль должен успешно отработать. habr.com Остальные модули будут запущены при неудаче, исполнение продолжится по конфигу. habr.com
- Requisite — указанный модуль должен успешно отработать. habr.com Остальные модули не будут запущены при неудаче, исполнение конфига тут же прекратится. habr.com
- Sufficient — если указанный модуль отработает успешно, весь сервис будет считаться доступным. habr.com При неудаче этого модуля будут выполняться следующие, стоящие в конфиге после него. habr.com
- Optional — результат модуля не имеет значения, если этот модуль единственный. habr.com
- Include — подключить содержимое другого конфига PAM. habr.com