Was ist der richtige Weg, um den SELinux-Kontext in einer RPM-.spec festzulegen?

14

Ich versuche, eine RPM zu erstellen, die RHEL4 und 5 als Ziel hat. Derzeit rufe ich chconvon %postmehreren Google-Einträgen aus an und sage mit sehr eingeschränkter Hilfe auf dem richtigen Weg, dass "das nicht so ist, wie Sie es tun sollen" . Mir ist auch aufgefallen, fixfiles -R mypackage checkdass die Dateien falsch sind, wenn sie richtig sind (wie erwartet; die RPM-DB erkennt nicht, was ich will).

  • Ich sage RHEL4 speziell , weil es sich nicht haben , semanagewelche die richtigen Wege zu sein scheint , es zu tun. (Fügen Sie eine neue Richtlinie hinzu und führen Sie sie restoreconin Ihren Verzeichnissen aus %post.)

    • Ich brauche auch keinen eigenen Kontext, nur httpd_cache_tin einem nicht standardmäßigen Verzeichnis.
  • Ich habe auch "Lassen Sie cpiosich darum kümmern" gesehen - aber dann habe ich ein neues Problem, dass ein Benutzer, der kein Root-RPM erstellt, nicht chconin den Build-Verzeichnissen ausgeführt werden kann. Ich habe geschummelt und hatte sudoin der Spec-Datei aber das schien sowieso egal zu sein.

Aaron D. Marasco
quelle

Antworten:

9

Die Fedora-Verpackungsrichtlinien enthalten einen Dokumententwurf, in dem erklärt wird, wie SELinux in Paketen gehandhabt wird semanage. Ohne semanagesieht es so aus, als wäre die Unterstützung von RHEL 4 ein Hack, und daran führt kein Weg vorbei.

Gemäß den Versionshinweisen zu rpm 4.9.0 wurde die Verwaltung von SELinux-Richtlinien direkt in rpm unterstützt, was jedoch in der Vergangenheit gescheitert ist:

  • Ältere Versionen von RPM unterstützten eine% -Richtlinien-Direktive in der Spezifikation zum Anhängen von SELinux-Richtlinien in den Paket-Header, aber dies war für nichts wirklich verwendbar. Alle Verwendungen der% policy-Direktive in Spezifikationen sollten entfernt werden, da diese unbenutzte Direktive das Erstellen mit RPM 4.9.0 und höher verhindert, während für ältere Versionen nichts unternommen wird.
  • Ab RPM 4.9.0 wird das SELinux-Richtlinienpaket über den neuen Abschnitt% sepolicy in der Spezifikation unterstützt. Solche Pakete können nicht erstellt werden, können aber auch auf älteren RPM-Versionen installiert werden (die enthaltenen Richtlinien werden jedoch in keiner Weise verwendet).

Ich sehe dort keine Erwähnung von Dateikontexten, und ich konnte keine Erwähnung von direkter Dateikontextunterstützung finden (wie %attrim %filesAbschnitt). In jedem Fall sieht es so aus, als ob RHEL 6 nur auf U / min 4.8.0 läuft. (Es sei denn, ich habe etwas verpasst) Die semanageRoute ist so gut, wie wir es zumindest bis RHEL 7 schaffen werden.

Steven Pritchard
quelle