Я знаю, что пароли хранятся в /etc/shadow
Как уже говорил Жиль, в /etc/shadow
хранятся только хэши паролей, более того, это лишь одно из возможных мест, они могут храниться глобально на сервере ldap
или в таблице NIS
.
Тем не менее, во время процесса входа в систему я предполагаю, что Linux возьмет ваше имя пользователя и пароль в качестве аргумента, зашифрует ваш пароль с тем же алгоритмом и сравнит его с тем, который хранится в тени.
Процесс гораздо более гибкий, чем этот. В зависимости от конфигурации PAM
система может последовательно проверять несколько модулей и останавливаться, если какой-либо из модулей завершается успешно и объявляется достаточным или, в качестве альтернативы, если модуль выходит из строя и объявляется необходимым. Модули могут устанавливать диалог с пользователем, пытающимся войти в систему, поэтому предоставляется не обязательно пара имени пользователя / пароля. Напримерпользователю может быть предоставлен доступ без указания пароля при использовании rlogin
(pam_rhosts_auth
). Он должен быть предупрежден о том, что срок действия пароля истекает, ему будет предложено изменить пароль с истекшим сроком действия и аналогичные интерактивные задачи.
Мой вопрос заключается в том, где происходит этот процесс? (код) Я попытался найти PAM, но не смог найти там ничего полезного.
Жиль также уже ответил на этот вопрос: pam_unix
обрабатывает записи файлов /etc/passwd
et /etc/shadow
.