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