sshd
PAMを使用するように設定(libpam.so.0
共有ライブラリに接続)し、次のものがあるとします/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
sshd
PAMが各スタックの終わりに成功または失敗を知らせるのは正しいですか?では、まずauth
施設を処理してから結果を に返しsshd
、次にaccount
施設を処理してaccount
スタック結果を に返すsshd
式ですか?認証されたセッションが終了すると、デーモンはPAMに通知しますか?
ベストアンサー1
ある意味、そんなことが起きていますが、私はそう言いたくありません。 PAMはsshdに積極的に通知しませんが、sshdは関数呼び出しを介してPAMに要求するためです(例:pam_authenticate
、pam_acct_mgmt
等)結果に応じた措置をとる。 PAMはまた、セッションがいつ閉じられるかを自動的に知りませんが、セッションが閉じるのを通過する必要があります。pam_close_session
(他のアプリケーションでセッションを閉じることができるからです。)
opensshのソースを見つけて、sshdがPAMを利用する場所と方法を確認できます。私もお勧めしますLinux-PAMアプリケーション開発者ガイド詳細に興味があれば。