私のApacheモジュールは、ヘルパーサブプロセスを起動します。これは、たとえば、次のことを行いますが、これらに限定されません。
- Apacheと通信できるようにソケットを設定します。
- Apacheの終了時に削除される一時的な場所でファイルの読み取りと書き込みを行います。これらのファイルは、たとえば、データがRAMに快適に収まらない場合に、ネットワーク経由で受信した大量のデータを保存するために使用されます。
- ユーザー指定の実行可能ファイルを生成します。CGIに似ています。これらの生成された各プロセスは、独自の専用ユーザーとして実行されます。
ヘルパーサブプロセスはrootとして起動されるため、ファイルの所有権とアクセス許可を管理し、特定のユーザーとしてより多くのプロセスを生成できます。
私のモジュールの一部のユーザーは、RedHatベースのディストリビューションなどのSELinuxがインストールされたシステムで実行されます。SELinuxは通常私のモジュールに干渉します。これまで、ソフトウェアに適切なポリシーを作成する方法がわからないため、システム全体でSELinuxを無効にするように人々に伝えてきました。ドキュメントは非常に分散していて複雑であり、通常はシステム管理者のみを対象としており、ソフトウェア開発者は対象としていません。
正しい方向へのステップとして、SELinuxの最小限のサポートを実装したいと思います。システム全体でSELinuxを無効にすることなく、SELinuxの制約なしにヘルパーサブプロセスを起動する方法を探しています。それを行う方法はありますか?もしそうなら、どのように?