Как получить статус проверки подлинности с последнего запуска модуля PAM

Если у меня есть следующий стек PAM:

auth required default_pam.so auth requisite my_custom_pam.so .... 

Как получить статус проверки подлинности из последнего / предыдущего модуля PAM для использования в вашем собственном модуле проверки подлинности PAM (например, в функции pam_sm_authenticate )?

One Solution collect form web for “Как получить статус проверки подлинности с последнего запуска модуля PAM”

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

 auth [success=1] default_pam.so auth [success=done default=die] my_custom_pam.so default_failed auth requisite my_custom_pam.so 

Эта цепочка имеет следующую логику:

  • Если модуль по умолчанию успешно завершен, отметьте его как подтвержденный (подразумеваемый success=1 ) и пропустите 1 модуль. Цепочка достигает my_custom_pam вызываемой без аргумента, которая должна преуспеть (требуется).
  • Если модуль по умолчанию выходит из строя, ничего не пропускайте. Цепочка достигает my_custom_pam , вызываемой с аргументом default_failed . Цепь остановится после этого модуля ( done или die ), и он определит общий результат.

Здесь ключевым элементом является аргумент, переданный my_custom_pam . pam_sm_authenticate argc и argv в вашей процедуре pam_sm_authenticate , вы сможете адаптировать свою логику в соответствии с текущим статусом цепи.

  • Группы Winbind PAM.D AD, CentOS 5, Разрешить?
  • Модуль pam libpam-pkcs11 ждет подтверждения после авторизации
  • Первое судо всегда медленно
  • пароль мультиплатформенного изменения
  • Is / sbin / sulogin безопасен?
  • Перезагрузить правила входа без перезагрузки
  • Использование PAM, как минимальное количество дней между изменениями пароля установлено?
  • journalctl -f является спамом «не удается создать сеанс» и «сеанс открыт для пользователя root», как я могу остановить его / исправить?
  • PAM против LDAP против SSSD против Kerberos
  • Как добавить дополнительные шаги для входа?
  • hard vs - in limits.conf
  • Linux и Unix - лучшая ОС в мире.