私のRocky Linux 9.3システムでは、LDAP認証が有効になっていてauthselect
正常に動作します。ローカルアカウントとLDAP専用アカウントを介してSSH経由でこのコンピュータにログインできます。しかし、/etc/pam.d/password-auth
myを含めることは/etc/pam.d/sshd
現在の動作と矛盾するようです。これには以下が含まれます。
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_usertype.so issystem
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
LDAPアカウントのみが失敗しますpam_unix.so
(いいえ?)。はいpam_unix.so
。 LDAPアカウントだけでは(成功しても)required
フルテストに失敗するようです。ただし、実際にはLDAPアカウントのみが機能します。なぜ?account
pam_sss.so
man pam.conf
説明する:
必須:これらのPAMが失敗すると、最終的にPAM-APIは失敗を返します。
十分:そのようなモジュールが成功し、以前に必要なモジュールが失敗しませんでした。PAMフレームワークはアプリケーションに成功を返します。
OK:この戻りコードがモジュールスタック全体の戻りコードに直接影響する必要があることをPAM管理者に通知します。つまり、スタックの以前の状態のためにPAM_SUCCESSが返された場合、モジュールの戻りコードはその値を上書きします。ノート、スタックの以前の状態にモジュールエラーを示す値が含まれている場合、この "ok"値はその値を上書きするために使用されません。 (私の強調)
そこにも別の問題、required pam_unix.so
問題が発生しました(予想通り)。
私のシステムが機能するのはなぜですか?
答え1
これはではaccount
ありませんauth
。コンポーネントの場合account
、man pam_unix
説明する:
The account component performs the task of establishing the status of the user's account
and password based on the following shadow elements: expire, last_change, max_change,
min_change, warn_change. In the case of the latter, it may offer advice to the user on
changing their password or, through the PAM_AUTHTOKEN_REQD return, delay giving service to
the user until they have established a new password. The entries listed above are
documented in the shadow(5) manual page. Should the user's record not contain one or more
of these entries, the corresponding shadow check is not performed.
(ローカル)パスワードが期限切れでない限り、ログインはブロックされません。
そこにも別の問題、必須pam_unix.soが問題を引き起こしました(予想どおり)。
実際、いいえあなたが期待していたように。確認する受け入れられた回答、この質問のOPから:
[問題] Pam認証はカスケード方式で機能するため、すでにローカルアカウントを持っている場合は、アカウントサービスを引き続き使用する理由はありません。したがって、認証には最初の行(pam_unix.so)で十分です。以前は、3行すべてログインが必要であったため、スタックはpam_ldap.soも確認していましたが、LDAPサービスがダウンしているかアクセスできない場合、認証スタックは中断されました。
pam_unix.so
彼らの問題は彼らが創造するように頼まれた問題ではありません。pam_ldap
LDAP サービスが失敗すると、スタックの下で問題が発生します。成功した場合はスキップを許可するsufficient
代わりに使用してください。required
コメントでこの質問のOPが確認したように、実際にはローカルでないユーザーが返されたため、スタックオーバーフローの質問のOPは、ローカルでないユーザーに対して常に(無意味に)成功する構成を設定したようです。正しい方法はthis質問のように使用するようです。pam_ldap
pam_unix
pam_unix
PAM_SUCCESS
pam_localuser