私の認証はLDAPに集中しています。 LDAPなしで動作するログインシステムがあるため、私の/etc/passwd
ファイルに存在します。これはpam.dディレクトリにある私の一般的なアカウントファイルです。
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 10000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
これには問題はありませんが、一部のドキュメントではpam_ldap.so構成行が最初のものなので、このファイルがうまく配置されているかどうか疑問に思います。
答えてくれてありがとう。
答え1
auth
はい、そうですね。 (and notを使用する必要がある場合を除くaccount
)各行を1つずつ分析してみましょう。
auth required pam_unix.so
pam_unix
ここでは、(標準パスワード認証)を通じてチェーンに入ります。このモジュールは、required
何が起こってもチェーンが下向きに続くことを意味します。ただし、モジュールが失敗すると、チェーンは失敗としてマークされ、最終的にユーザーのアクセスが拒否される可能性があります。
auth sufficient pam_succeed_if.so uid < 10000 quiet
この行はリクエストのUIDをチェックします。モジュールが成功すると(ユーザーIDが10000未満)、モジュールがあるためチェーンが停止しますsufficient
。ただし、前のモジュールで設定したフラグは変更されません。 UNIX 認証が失敗した場合、成功してrequired
もチェーンは失敗で終了します。pam_succeed_if
auth [default=bad success=ok user_unknown=ignore] pam_ldap.so
私たちがここにいたらpam_succeed_if
失敗しました(sufficient
チェーンをモジュールで終了しなかったからです)。これは、UIDが10000より大きいことを意味します(これがLDAPユーザーに設定されたしきい値だと思います)。このモジュールの動作はもう少し詳細です。
- 成功すると、チェーンは成功としてマークされます(
ok
)。これはUNIXモジュールの結果に対応し、チェーンを正常な状態に復元します。 - ユーザーがLDAPサーバーに認識されていない場合、このモジュールは無視されます。チェーンの結果はです
pam_unix
。 - 他のすべての場合()は、UNIXが成功したかどうかにかかわらず、モジュールは
default
チェーンを失敗()としてマークします。bad
最後に、ダミーモジュールがあります。
auth required pam_permit.so
このモジュールは毎回成功します。チェーンの状態を次のように設定するために使用されます。成功以前にモジュールが動作したことがない場合。しかし、これは決してあなたの場合ではありません。