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

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

login내 PAM 구성 등 의 인증 섹션을 mdm보려면 common-auth. 나는 common-auth다음을 서브스택(as auth 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

그러나 데비안 시스템에서는 다음을 대신 사용해야 할 수도 있습니다:

@include krb5ldap-cache-auth

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

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

이러한 경우 에서 done또는 die작업이 트리거되면 krb5ldap-cache-authPAM은 해당 작업을 종료합니다.전체 스택, 그리고 서브스택뿐만이 아닙니다.

관련 정보