PAM выступает в качестве посредника между приложениями (например, SSH или sudo) и методами аутентификации. 1 Когда пользователь пытается войти в систему, приложение передаёт запрос на аутентификацию PAM. 1 Затем PAM обрабатывает этот запрос в соответствии с правилами и модулями, указанными в его конфигурационных файлах. 1
Некоторые ключевые компоненты PAM:
- Модули. 1 Это общие библиотеки, определяющие методы аутентификации. 1
- Конфигурационные файлы. 1 Они определяют, как модули применяются к конкретным приложениям. 1
- Группы управления. 1 Модули PAM разделены на четыре группы: аутентификация, учётная запись, пароль и сеанс. 1
На примере авторизации в текстовой консоли Linux с помощью утилиты login процесс работы PAM выглядит так: 3
- Утилита login запрашивает у пользователя логин и пароль, а затем делает запрос к libpam, чтобы выяснить, действительно ли это тот пользователь, за которого он пытается себя выдать. 3
- Для проверки локального логина и пароля используется модуль pam_unix, затем результат возвращается в программу. 3
- Затем утилита спрашивает у libpam, может ли этот пользователь подключаться. 3 Библиотека использует тот же модуль, чтобы определить, не истёк ли пароль пользователя. 3
- Если пароль пользователя истёк, он не сможет войти в систему, либо ему предложат сменить пароль прямо сейчас. 3
- Если всё хорошо, то процесс входа продолжается, и модуль pam_unix записывает временную метку входа в файл, затем запускается командная оболочка. 3
- Если на каком-либо этапе входа возникла ошибка, сообщение о ней записывается в файл журнала. 3
PAM-системы предотвращают утечку паролей, контролируя их хранение и смену, а также автоматически подставляя нужные пароли при аутентификации. 4