RPM .specでSELinuxコンテキストを設定する正しい方法は何ですか?

RPM .specでSELinuxコンテキストを設定する正しい方法は何ですか?

RHEL4と5をターゲットとするRPMを構築しようとしています。私は今電話しましたが、いくつかのGoogleエントリchcon%post「これはあなたがしなければならないことではありません」と言いますが、次の質問の助けは非常に限られています。正しい方法。私はまた、fixfiles -R mypackage checkファイルが正確で間違っていると言うことを発見しました(予想通り、RPM DBは私が望むものに気付いていませんでした)。

  • 私は特にRHEL4と言います。いいえこれはsemanage正しいアプローチの1つであるようです。 (新しいポリシーを追加してのディレクトリrestoreconで実行します%post。)

    • 私自身のコンテキストも必要とせず、非httpd_cache_t標準ディレクトリだけが必要です。
  • 「処理しよう」も見たことがあります。しかし、root以外のRPMビルドユーザーがビルドディレクトリで実行cpioできない新しい問題に直面しました。仕様ファイルに何かをchconだましてsudo追加しましたが、あまりそうではありません。

答え1

これFedoraのパッケージングガイドパッケージでSELinuxを処理する方法と使用方法を説明するドラフト文書がありますsemanage。そうでなければ、semanageRHEL 4をサポートするのは難しいようですが、それを解決する方法はありません。

~によるとrpm 4.9.0 リリースノート、SELinux ポリシー管理の一部のサポートは rpm から直接提供されますが、歴史的には中断されました。

  • 以前のバージョンのRPMは、SELinuxポリシーをパケットヘッダーに追加するための仕様で%policyディレクティブをサポートしていましたが、実際には使用されませんでした。仕様で %policy ディレクティブを使用する場合は削除する必要があります。これは未使用のディレクティブがRPM 4.9.0以降でビルドされるのを防ぎ、以前のバージョンでは何もしません。
  • RPM 4.9.0以降、SELinuxポリシーのパッケージングは​​仕様の新しい%sepolicyセクションでサポートされています。これらのパッケージはビルドできませんが、以前のバージョンのRPMにもインストールできます(ただし、含まれているポリシーはどのようにも使用されません)。

そこにはファイルコンテキストへの言及はなく、直接ファイルコンテキストサポートへの言及も見つかりません(参考文献セクションを参照%attr%files。とにかく、RHEL 6はrpm 4.8.0のみをサポートしているようです。したがって、(何か欠けていない限り)このsemanageパスは、少なくともRHEL 7まではできることです。

関連情報