Вход по отпечатку пальца PAM блокирует пароль.

Вопрос или проблема

Есть ли способ заставить PAM запускать модули аутентификации параллельно?

Для всех, кто использует PAM, это может быть полезно.

Кажется, что PAM выполняет модули аутентификации последовательно и блокирующе.

Это означает, что для людей, которые хотели бы использовать несколько механизмов аутентификации, мы должны иметь иерархию методов, которая не является обструктивной.

Проблема, которую я пытаюсь решить, заключается в следующем: GNome keyring требует пароль для разблокировки, но у меня также активен pam_fprintd… и я экспериментирую с камерой распознавания лиц.

Это означает, что когда я вхожу в систему в первый раз, сначала блокируется pam_fprintd, затем блокируется распознавание лиц, и только после этого я могу ввести свой пароль.

Это происходит и с sudo. Что является серьезным неудобством.

Столкнувшись с той же проблемой, я думаю, что она не решается только с помощью PAM. Из руководства pam_fprintd.so (man pam_fprintd):

ОГРАНИЧЕНИЯ

Стек PAM по дизайну используется для последовательной аутентификации, так что pam_fprintd не может позволить аутентификацию через пароли и отпечатки пальцев одновременно.

Это задача приложения, использующего сервисы PAM, реализовать отдельные процессы PAM и запускать отдельные стеки аутентификации по отдельности. Так, например, для пользователей gdm становятся доступны множественные методы аутентификации.

Менеджер отображения GNOME (gdm3), например, который позволяет одновременно вводить пароль и сканировать отпечаток пальца (требуя только один из них, но не оба), реализовал множественные стеки аутентификации параллельно самостоятельно.

Я также нашел проблему на GitHub в репозитории linux-pam, где велась дискуссия более двух лет о том, должен ли PAM поддерживать это, есть ли какие-либо RFC за или против – но в конце концов, кажется, что разработчики не взялись за это.

В конечном итоге это делает этот ответ не-ответом (к сожалению) до тех пор, пока linux-pam или третья сторона не реализует какое-либо общее расширение для PAM, чтобы позволить множественные параллельные модули аутентификации.

Если вы используете версию fprint 1.92 или выше, вы можете нажать Ctrl+C, чтобы прекратить попытку использовать отпечаток пальца и переключиться на аутентификацию через пароль: коммит, который реализовал это.

Очевидно, кто-то наконец создал модуль pam_any как временное решение в 2024 году, но трудно сказать, когда или будет ли он принят как общий модуль PAM в любых дистрибуциях. Тем не менее, если у вас есть возможность, вы можете собрать и добавить этот модуль PAM в свою конфигурацию, чтобы запускать несколько методов аутентификации параллельно.
https://github.com/ChocolateLoverRaj/pam-any

.

Ответ или решение

Проблема, заключающаяся в том, что PAM (Pluggable Authentication Modules) обрабатывает модули аутентификации последовательно и блокирующе, вызывает неудобства, особенно когда используется несколько механизмов аутентификации, например, сканер отпечатков пальцев и распознавание лиц. Это может создать проблемы при первоначальном входе в систему и использовании команды sudo, поскольку пользователь должен последовательно выполнять несколько этапов аутентификации.

Из текущей реализации PAM следует, что параллельная обработка модулей аутентификации не поддерживается. Как указано в документации pam_fprintd, стек PAM по своему замыслу работает последовательно, что не позволяет использовать аутентификацию через пароль и отпечатки одновременно. Разработчики PAM сообщают, что только приложения, использующие услуги PAM, могут имплементировать отдельные процессы для параллельной работы аутентификационных стеков. Примером такого подхода является дисплейный менеджер GNOME (gdm3), предоставляющий пользователю возможность использовать пароль или отпечаток пальца в параллельном режиме.

Обсуждения на таких платформах, как GitHub, подчеркивают, что несмотря на некоторый интерес к реализации этой функции, работа над ней не получила существенного развития. В настоящее время это оставляет пользователей в неведении, что касается поддержки параллельной аутентификации средствами PAM.

Тем не менее, для пользователей версии fprint 1.92 и выше существует возможность прекратить использование отпечатка пальца и переключиться на пароль, нажав сочетание клавиш Ctrl+C, что, хотя и не решает проблему в корне, может служить временным обходным решением.

Для тех, кто ищет более устойчивое решение, был создан модуль pam_any, который позволяет осуществлять параллельную аутентификацию через разные методы. Этот модуль доступен на GitHub, но его будущее распространение и поддержка в популярных дистрибутивах остаются под вопросом. До тех пор, те, у кого есть техническая возможность, могут самостоятельно построить и интегрировать этот модуль в свои системы.

Если взглянуть на вышесказанное, вопрос действительно получает ответ в отрицательной форме до момента, когда сообщества PAM или сторонние разработчики не внедрят в систему поддержку параллельной аутентификации. Чтобы решить текущую проблему, пользователям предлагается рассмотреть альтернативы или включить новые модули при наличии возможности.

Оцените материал
Добавить комментарий

Капча загружается...