開発中のアプリケーションの一部となる独自のPAMモジュールを作成していますが、どこに配置するか正確にはわかりません。私のモジュールは基本的にLDAPと同様にネットワークレベルの認証を行います(もちろん他のモジョを使用します)。
私の/etc/pam.d/
ディレクトリには多くの設定ファイルがあり、ほとんどのサービスが何をしているかを知っています(atd、polkit、pppのようなカップルを除く)。PAMスタックでの認証は次のようになると思います:
- サービス名に基づいてスタックを実行します(構成ファイルが存在する場合)
- 認証されていない場合は、common- *にフォールバックします。*はモジュールタイプ(auth、accountなど)です。
- 成功を返すか、呼び出しアプリケーションに失敗します(もちろん他のデータも)
この仮定は正しいですか? すべてのプラットフォームに共通認証、共通アカウント、共通パスワード、および共通セッションがありますか?
もしそうなら、私はそれをsufficient
モジュールとしてcommon- *の一番上に置くことを考えていたので、失敗したときに通常のPAMスタックは影響を受けません。ソフトウェアのインストール時にプログラムでこれを実行できるため、これは特に有利です。
潜在的なセキュリティの脆弱性を見逃していますか?
カスタムPAMモジュールを統合する場所や、モジュールを配置する場所を取り巻くセキュリティの問題に関する、適切なドキュメントが見つかりませんでした。