Я изучаю PAM и немного не понимаю, что означает некоторая комбинация контрольных флагов. Из документации Red Hat мы имеем:
требуемый
сбой такого PAM в конечном итоге приведет к сбою возврата PAM-API, но только после того, как будут вызваны оставшиеся стековые модули (для этой службы и типа)реквизит
как требуется, однако, в случае, если такой модуль возвращает ошибку, управление возвращается непосредственно приложению.Достаточного
успеха такого модуля достаточно, чтобы удовлетворить требования аутентификации стека модулей (если ранее требуемый модуль потерпел неудачу, успех этого модуля игнорируется). Отказ этого модуля не считается фатальным для удовлетворения заявки, которую этот тип успешно выполнил. Если модуль завершается успешно, структура PAM немедленно возвращает приложение успешной работе, не пытаясь использовать другие модули.
Таким образом, в моем понимании, если модуль requisite
выходит из строя, весь стек модулей не будет проанализирован, и элемент управления немедленно вернется к приложению. Если модуль sufficient
завершается успешно, оставшийся стек модулей не будет проанализирован, и элемент управления немедленно вернется к приложению. Если модуль required
выходит из строя, весь стек будет проанализирован.
Теперь я не могу понять, каково будет поведение, когда определенный модуль required
выходит из строя, а другой модуль sufficient
успешно.
required
элемент не удался, зачемPAM
продолжать проходить через стек? если это все равно окончательно провалится?