sshd
を構成したとしましょう (libpam.so.0
に対してリンクされています 共有ライブラリ)PAMを使用するには、次の/etc/pam.d/sshd
があります コンテンツ:
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_unix.so try_first_pass
auth required pam_google_authenticator.so
account requisite pam_nologin.so
account required pam_unix.so try_first_pass
password requisite pam_cracklib.so
password required pam_unix.so use_authtok nullok shadow try_first_pass
session required pam_loginuid.so
session required pam_limits.so
session required pam_unix.so try_first_pass
session optional pam_umask.so
session optional pam_systemd.so
session optional pam_env.so
session optional pam_lastlog.so silent noupdate showfailed
PAMがsshd
に通知するのは正しいですか 各スタックの最後での成功または失敗について?したがって、最初にauth
ファシリティが処理され、結果がsshd
に返されます。 、次にaccount
施設が処理され、account
の結果 スタックはsshd
に返されます 、など?認証されたセッションが終了すると、PAMはデーモンから通知されますか?
承認された回答:
ある意味でそれが起こっているのですが、私はそのように言いません。
PAMはsshdに積極的に通知せず、むしろsshdが関数呼び出し(pam_authenticate
など)を介してPAMに要求するためです。 、pam_acct_mgmt
など)、結果に応じて動作します。また、PAMは、セッションがいつ閉じられるかを自動的には認識しませんが、pam_close_session
を介して通知する必要があります (セッションは別のアプリケーションから閉じることができるため)
sshdがPAMを利用する場所と方法を理解するために、opensshのソースコードを調べることができます。詳細に興味がある場合は、Linux-PAMアプリケーション開発者ガイドもお勧めします。