Система аутентификации в Linux работает с помощью подключаемых модулей аутентификации (PAM). 15 Это единый сервис, который объединяет провайдеров аутентификации и позволяет выбрать любой сценарий и порядок их использования. 2
Алгоритм работы системы: 1
- Запускается утилита login. 1
- Утилита login делегирует функции внешнему PAM-модулю. 1 Конкретный PAM-модуль предварительно должен быть прописан в соответствующем конфигурационном файле. 1
- PAM-модуль запрашивает у пользователя логин (или аппаратный идентификатор) и пароль. 1
- PAM-модуль рассчитывает хеш от предъявленных пользователем значений логина и пароля и передаёт его модулю ядра по протоколу взаимодействия usermode-приложений с ядром ОС (протокол netlink). 1
- Модуль ядра ищет в своих структурах пользователя по логину (аппаратному идентификатору) и сравнивает полученное от PAM значение хеша со значением в своей БД. 1
- Если хеш совпадает, то PAM-модулю по netlink от модуля ядра возвращается имя пользователя, которому соответствует хеш в БД пользователей. 1 PAM-модуль пропускает пользователя и запускает его shell. 1
- Если хеш не совпадает, то PAM-модулю по netlink от модуля ядра возвращается указание вывести ошибку (код ошибки) и не аутентифицировать пользователя в системе. 1
В процессе аутентификации пользователя в модуле ядра могут учитываться дополнительные параметры, которые могут влиять на результат аутентификации пользователя, например, разрешённое время работы пользователя. 1