私はPAMを勉強していますが、コントロールフラグの組み合わせの意味については少しわかりません。Red Hatのドキュメントから次のことがわかります。
そのようなPAMの必要な障害は、最終的にPAM-APIが障害を返すことにつながりますが、(このサービスとタイプの)スタックされた残りのモジュールが呼び出された後でのみです。必要な
必須のような、しかし、そのようなモジュールが失敗を返した場合には、制御は直接アプリケーションに戻されます。
そのようなモジュールの十分な成功は、モジュールのスタックの認証要件を満たすのに十分です(以前に必要なモジュールが失敗した場合、このモジュールの成功は無視されます)。このモジュールの障害は、このタイプが成功したというアプリケーションを満たすために致命的とは見なされません。モジュールが成功すると、PAMフレームワークは他のモジュールを試行せずにすぐにアプリケーションに成功を返します。
したがって、私の理解では、モジュールにrequisite
障害が発生した場合、モジュールのスタック全体は解析されず、コントロールはすぐにアプリケーションに戻ります。モジュールsufficient
が成功した場合、残りのモジュールスタックは解析されず、コントロールはすぐにアプリケーションに戻ります。モジュールにrequired
障害が発生すると、スタック全体が解析されます。
現在、特定のモジュールrequired
が失敗し、別のモジュールsufficient
が成功した場合の動作を理解できません。
required
アイテムが失敗した場合、なぜPAM
スタックを通過し続ける必要があるのでしょうか?とにかく最終的に失敗する場合は?