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

Pam –必要かつ十分な制御フラグ?

私はPAMを研究していますが、制御フラグの組み合わせの意味については少しわかりません。 Red Hatのドキュメントから:

  • 必須
    このようなPAMに障害が発生すると、最終的にPAM-APIが障害を返すことになります
    が、残りのスタックモジュール(このサービスとタイプ)が呼び出された後にのみ
    呼び出されます

  • 必須
    必要に応じて、ただし、そのようなモジュールが障害を返した場合、
    制御はアプリケーションに直接返されます。

  • このようなモジュールの成功は、モジュールのスタックの認証要件を満たすのに十分です
    (以前に必要なモジュールが失敗した場合
    このモジュールの成功は無視されます)。このモジュールの障害は、
    このタイプが成功したというアプリケーションを満たすのに致命的とは見なされません。
    モジュールが成功すると、PAMフレームワークは他のモジュールを試行せずに
    すぐにアプリケーションに成功を返します。

したがって、私の理解では、モジュールがrequisite 失敗すると、モジュールのスタック全体が解析されず、コントロールはすぐにアプリケーションに戻ります。
モジュールがsufficientの場合 成功すると、残りのモジュールスタックは解析されず、コントロールはすぐにアプリケーションに戻ります。
モジュールがrequired 失敗すると、スタック全体が解析されます。

さて、特定のモジュールがrequiredのときの動作がわかりません。 失敗し、別のモジュールがsufficient 成功します。

承認された回答:

PAMは、スタック上のアイテムを順番に処理します。状態(成功または拒否、これまでのところ成功は成功を意味します)の記憶のみを保持し、その状態にどのように到達したかは記憶しません。

sufficientとマークされたアイテムの場合 成功すると、PAMライブラリはそのスタックの処理を停止します。これは、以前にrequiredであったかどうかに関係なく発生します アイテムかどうか。この時点で、PAMは現在の状態を返します。以前のrequired アイテムが失敗しました。それ以外の場合は拒否されました。

同様に、requisiteとマークされたアイテムの場合 失敗すると、PAMライブラリは処理を停止し、失敗を返します。その時点では、以前のrequiredであるかどうかは関係ありません。 アイテムが失敗しました。

つまり、required 必ずしもスタック全体が処理されるとは限りません。続けることだけを意味します。

関連:YouTubeビデオのフレームごとの制御?
Linux
  1. クラスターユーザーとグループ

  2. Cythonという名前のモジュールがなく、cythonizeの実行に失敗しました[修正]

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

  1. insmodとmodprobeの違いは何ですか

  2. kvm:モジュールの検証に失敗しました:署名および/または必要なキーがありません - 汚染されたカーネル

  3. success=n pam.conf / pam.d/* ファイルの制御構文

  1. Setxkbmapを使用して左シフトと左コントロールを入れ替えますか?

  2. バックアップPamモジュールを使用するにはどうすればよいですか?

  3. NssとPamの違いは?