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」を使用して、より大きなスタックを終了せずにサブスタックを終了できるので便利です。

ただし、認証に失敗した場合は、より大きなスタックを終了する必要がある場合も続行されます(たとえば、無駄に呼び出されmdmpam_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

この場合、イベントがdoneORdie演算をトリガするとkrb5ldap-cache-authPAMは終了します。フルスタック、サブスタックだけではありません。

関連情報