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
。そうでなければ、semanage
RHEL 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まではできることです。