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