pam_ssh_agent_auth.so
SSH 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
を意味します。つまり、ファイルの行数に関係なく、すべての行をスキップします。auth
auth sufficient
auth
system-auth
を使用しauth [success=3 default=ignore]
てauth
次の行に行がある場合は、含まれているinclude
ファイルも調べて、何が起こるのかを正確に理解する必要があります。これを行うときにまだパスワードを要求するという事実は、ファイルにauth
3行以上があることを明らかに示していますsystem-auth
。
答え2
マニュアルページから:
sufficient
if such a module succeeds and no prior required module has failed the PAM
framework returns success to the application or to the superior PAM stack
immediately without calling any further modules in the stack. A failure of a
sufficient module is ignored and processing of the PAM module stack
continues unaffected.
あなたの場合は、「認証キー」ファイルを確認するとすぐに成功を返します。
Fedoraの例では、「認証キー」ファイルを正常に確認すると、次の2つの手順をスキップし、pam_limits.soがsudoユーザーが使用できるリソース数の制限を設定するなど、いくつかのセッション検証を実行します。