RPM .specでSELinuxコンテキストを設定する適切な方法は何ですか?


14

私はRHEL4と5をターゲットとするRPMを構築しようとしていますが、今は複数のGoogleエントリchconから%post「それはあなたのやり方ではありません」と言われていますが、正しい方法は非常に限られています。またfixfiles -R mypackage check、ファイルが正しい場合、ファイルが間違っていると言うことに気付きました(予想どおり、RPM DBは私が望むものを認識しません)。

  • それがないので、私は、具体的RHEL4を言わないで持ってsemanage、それを行うには、適切な方法の一つであると思われます。(新しいポリシーを追加してrestoreconから、ディレクトリで実行します%post。)

    • また、httpd_cache_t標準ではないディレクトリ上で、独自のコンテキストは必要ありません。
  • cpio世話をしましょう」も見たことがありますが、非ルートRPMビルドユーザーがchconビルドディレクトリで実行できないという新しい問題があります。私はごまかしsudoてspecファイルにありましたが、それはとにかく重要ではないようでした。

回答:


9

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までは可能な限りルートは良好です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.