web-dev-qa-db-ja.com

pam.conf / pam.d / *ファイルの "success = n"制御構文

Kerberosを正常に構成した後、これが/etc/pam.d/common-authファイルで見つかりました。

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

success=2制御値は、pam_unix.so失敗の場合、認証がauth requisite pam_deny.so行または最後の行にスキップすることを意味しますか?

16
Jamie

私の理解から、success=$numは、成功したときにスキップするルールの数を指定します。したがって、いずれかのpam_unix.soまたはpam_winbind.so成功、PAMは最後の行にスキップします。もちろん、最後の行はすべての場合にアクセスを許可します。

17
Warner

pam.d(5)-Linuxのマニュアルページ

より複雑な構文の場合、有効な制御値は次の形式になります。
[value1=action1 value2=action2 ...]
actionNは次のいずれかです。符号なし整数n。「スタック内の次のn個のモジュールにジャンプする」というアクションを示します。

Common-authの内容:

  1. ローカルUNIX認証がsuccessを返す場合、2つのモジュールを4番目のモジュールにジャンプします(ジャンプするモジュール1 + 2モジュール->モジュール4)。それ以外の場合は、ローカル認証の結果を無視して、次のモジュールに移動します。
  2. Kerberos認証を使用したwinbind(最近はsssdに置き換えられた)がsuccessを返した場合は、1つのモジュールをモジュール4にジャンプします。それ以外の場合は、ローカル認証の結果を無視し、次のモジュールに移動します。
  3. 認証要求を拒否します。結果はDENIEDとして確定され、PAMはそこで停止します(必要な制御のために定義されたアクション)。
  4. すべてを許可します。結果はPERMITTEDとして確定されますが、次のモジュールに移動します(必要な制御のために定義されたアクション)。ただし、実行するモジュールが残っていないため、そこで終了します。
2
mon