GNU/Linux >> Linux の 問題 >  >> Linux

PamとPam対応デーモン間の通信を理解していますか?

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アプリケーション開発者ガイドもお勧めします。


Linux
  1. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  2. Sudo Su –とSudo Su —の違いは何ですか?

  3. EotとEofの違いは?

  1. [0-9]、[[:digit:]]とDの違いは?

  2. NssとPamの違いは?

  3. tty と xorg セッションを切り替える方法

  1. ログインシェルと非ログインシェルの違いは?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. /etc/pam.d/login と /etc/pam.d/system-auth の違いは?