pamルールを明確にするには、 `success = 3`を使用してください。

pamルールを明確にするには、 `success = 3`を使用してください。

pam_ssh_agent_auth.soSSH pubkeyを介して認証するときにsudoを使用する一部のユーザーにパスワードのない環境を提供するように設定しようとしています。

私は見始めたGentoo Wiki、使用することをお勧めします

...
auth [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth    include     system-auth                 <- 1st skipped
account include     system-auth                 <- 2nd skippedm
session include     system-auth                 <- 3rd skipped
...                                             <- should continue from here

私はFedoraを着用していますが、/etc/pam.d/sudo次のようになります。

auth     [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth     include     system-auth
account  include     system-auth
password include     system-auth
session  optional    pam_keyinit.so revoke
session  required    pam_limits.so
session  include     system-auth

私はPAMの専門家ではありませんが、マニュアルページを見ると、success=3「このルールが成功すると次の3行をスキップします」と解釈します。そのため、ユーザーが正しくログインし、プロキシがあればパスワードを取得することを期待しています。聞かないでください。

ああ、これはうまくいきません。とにかくパスワードの入力を求められます。

[success=3 default=ignore]usingを使用せずに単に使用すると、基本的に同じだと思われ、認証は期待どおりに機能します。sufficientこの場合、モジュールスタックは次の3つのモジュールで構成されているため、違いは見られません。

明らかに使用[success=3 default=ignore]し、sufficient同じ結果が得られないのと同じではありません。

誰かが実際の違いが何であるか、この場合電子が機能しない理由を説明できますか?

ありがとう

ベストアンサー1

まず、includeその行はPAMモジュールではありません。計算ではなく

auth     include     system-auth

スキップしたエントリとして、PAMライブラリはauth includeこの行をauthに置き換えます/etc/pam.d/system-auth。したがって、スキップされた3行を確認するには、[success=3 default=ignore]まずincludeそのステートメントをファイルの適切な内容に置き換えてから、system-authスキップされた行数を数える必要があります。 。

[success=3 default=ignore]第二に、モジュールタイプ全体で動作しないと思います。

ユーザーを認証すると、アプリケーションは最初の呼び出しを実行しますがpam_authenticate()、その間にPAMライブラリはauthそのタイプの項目のみを処理します。ユーザーが正常に認証されると、アプリケーションはそのタイプの項目のみを処理するpam_acct_mgmt()ものを呼び出すことができます。account完了すると、pam_open_session()そのタイプの項目のみが処理されますsession

認証パス、アカウント管理パス、セッション設定パスは異なる操作なので、auth [success=3 default=ignore]次の3行だけをスキップすることができると思いました。authタイプのみ。あなたの場合、スキップされた行は/etc/pam.d/system-authファイルの内側にあります。


を使用すると、行にリストされているモジュールが認証の成功を報告すると、行の処理がすぐに停止されることauth sufficientを意味します。つまり、ファイルの行数に関係なく、すべての行をスキップします。authauth sufficientauthsystem-auth

を使用しauth [success=3 default=ignore]auth次の行に行がある場合は、含まれているincludeファイルも調べて、何が起こるのかを正確に理解する必要があります。これを行うときにまだパスワードを要求するという事実は、ファイルにauth3行以上があることを明らかに示していますsystem-auth

おすすめ記事