私のPAM設定などの認証部分に対して、以下をサブスタックとして呼び出しlogin
ました(例:)。mdm
common-auth
common-auth
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-auth
PAM構文が正しくありません。
答え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
この場合、イベントがdone
ORdie
演算をトリガするとkrb5ldap-cache-auth
PAMは終了します。フルスタック、サブスタックだけではありません。