PAM 하위 스택을 "필수"로 만드는 방법은 무엇입니까?

PAM 하위 스택을 "필수"로 만드는 방법은 무엇입니까?

내 PAM 구성 등의 인증 부분에 대해 다음을 하위 스택으로 호출 login했습니다 (예 : ).mdmcommon-authcommon-authauth substack krb5ldap-cache-auth

auth optional pam_echo.so Trying UNIX
# Try UNIX, empty passwords OK
auth sufficient pam_unix.so nullok

auth optional pam_echo.so Checking UID
# If the uid < 500 and UNIX didn't work, then die.
auth requisite pam_succeed_if.so uid >= 500 quiet_success

auth optional pam_echo.so Trying Kerberos
# Try Kerberos, using the same password
# If the password is correct (success), then skip next lines
# If the password is wrong (auth_err), then die
# If Kerberos can't connect (?), then ignore
auth [success=2 auth_err=die default=ignore] pam_krb5.so debug use_first_pass

# Try the cache, using the same password
# Last chance.
auth optional pam_echo.so Trying cache
auth [success=done default=die] pam_ccreds.so action=validate use_first_pass

# Kerberos validated our password.
auth optional pam_echo.so Kerberos validated
# Store the password hash.
auth optional pam_ccreds.so action=store use_first_pass
# See if we can mount user drives, since we have a Kerberos token.
auth optional pam_mount.so
auth optional pam_echo.so Done.

( pam_echo.so디버깅 전용입니다.)

이는 성공적인 인증을 위해 제대로 작동하는 것 같습니다. 하위 스택 메커니즘은 "sufficient" 및 "done"을 사용하여 더 큰 스택을 종료하지 않고도 하위 스택을 종료할 수 있기 때문에 편리합니다.

그러나 인증이 실패하면 더 큰 스택이 종료되어야 할 때 계속됩니다(예: mdm쓸모없게 호출됨 pam_gnome_keyring.so, login쓸모없게 호출됨).pam_group.so

하위 스택이 실패하면 스택이 종료되도록 하위 스택을 호출하는 방법이 있습니까? 시도했지만 auth requisite substack krb5ldap-cache-authPAM 구문이 잘못되었습니다.

답변1

PAM 관리자 가이드에서:

substack

이 컨트롤의 매개변수로 지정된 구성 파일에 지정된 유형의 모든 행을 포함합니다.이는 include전체 모듈 스택의 나머지 부분을 건너뛰지 않고 하위 스택만 건너뛰게 하는 하위 스택의 완료 및 다이 작업 평가와 다릅니다.

include귀하의 질문을 읽어보니 귀하가 대신에 해당 질문을 찾고 있는 것 같습니다 substack. 그러니 아마 바꿔야 할 것 같습니다...

auth substack krb5ldap-cache-auth

그리고...

auth include krb5ldap-cache-auth

그러나 Debian 시스템에서는 다음을 사용해야 할 수도 있습니다:

@include krb5ldap-cache-auth

또한 RedHat 시스템 및 파생 제품에서는 일반적으로 더 이상 사용되지 않는 것으로 간주되는 를 사용해야 할 수도 있습니다 pam_stack(재귀를 포함한 문제 처리로 인해 생각됩니다).

auth requisite pam_stack.so service=krb5ldap-cache-auth

이러한 경우 이벤트가 doneOR die연산을 트리거하면 krb5ldap-cache-authPAM이 종료됩니다 .전체 스택, 서브스택 뿐만이 아닙니다.

관련 정보