Unter RHEL / CentOS 7 versuche ich, einen neuen SELinux-Sicherheitskontext für Dateien zu erstellen, um einen neuen Dienst zu unterstützen, den ich schreibe.
Ich habe eine Typdurchsetzungsdatei für meinen neuen Dienst erstellt, kann jedoch keinen neuen Typ erstellen, den das System als Dateityp erkennt.
Ich arbeite basierend auf diesem CentOS 5-Dokument " Erstellen eines lokalen Richtlinienmoduls" , das mich anweist, eine TE-Datei zu erstellen, diese dann zu verwenden checkmodule
und semodule_package
zu kompilieren.
Wenn ich nur in meine TE-Datei schreibe:
type myservice_spool_t;
dann kompiliert der TE gut, aber wenn ich es versuche, semanage fcontext
bekomme ich folgendes:
$ sudo semanage fcontext -a -t myservice_spool_t "/var/spool/myservice(/.*)?"
ValueError: Type myservice_spool_t is invalid, must be a file or device type
Ich habe verschiedene Tutorials gelesen, aber kein Beispiel gefunden, das funktioniert - alles, was ich mir ansehe, ist entweder:
- veraltet - zB Diese RHEL 4 SELinux-Dokumentationsseite sagt, dass man verwenden sollte
type myservice_spool_t, file_type;
,checkmodule
sagt aber :ERROR 'attribute file_type is not declared'
- unvollständig - zB diese Antwort lässt mich das Makro verwenden
file_type()
,checkmodule
sagt aber :ERROR 'This block has no require section.' at token 'files_type'
- oder vollständig fehlen - z. B. enthält das neue SELinux-Handbuch für RHEL 7 keine Informationen zum Erstellen neuer Richtlinien, außer zur Verwendung
audit2allow
.
Die SELinux-Projektwebsite ist völlig nutzlos, da ich kein einziges funktionierendes Beispiel gefunden habe
Ich würde mich über ein einfaches, prägnantes Beispiel für das Schreiben einer TE-Datei freuen, in der ein neuer Typ eingeführt semanage fcontext
wird, der genehmigt wird.
[Aktualisieren]
Ich habe diese Gentoo-Dokumentation zum Erstellen von Richtliniendateien gefunden , die einige nützliche Erklärungen und Beispiele enthält.