
В следующей конфигурации PAM для файла/etc/pam.d/system-auth
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
Если первый раздел ( auth
) прошел успешно, будет ли вызван и проверен второй раздел ( account
)? И наоборот, если auth
раздел не прошел успешно, будет ли account
вызван?
В другом сценарии, чтобы подчеркнутьмоя главная трудность, если мы смешаем auth
иaccount
, давайте возьмем следующий пример:
auth sufficient pam_unix.so nullok try_first_pass
account required pam_unix.so
auth requisite pam_succeed_if.so uid >= 500 quiet
account sufficient pam_succeed_if.so uid < 500 quiet
Как именно будет вести себя PAM? Я в замешательстве по этому поводу, и мне будет очень полезно, если кто-нибудь сможет мне это объяснить.
решение1
PAM не смешивает аутентификацию и тип учетной записи, а скореескладывает их независимо друг от другав соответствии с типом управления. Возвращаемое значение стека зависит от порядка опций и флагов управления, ср.https://docs.oracle.com/cd/E19253-01/816-4557/pam-15/index.html
Что делать с результатом, немного зависит от приложения. Обычно программа типа login или su проверяет учетную запись только после успешной аутентификации.