Machen Sie alle SELinux-Kontexte dauerhaft

9

Ich habe in chconletzter Zeit viel getan , aber wenn ich es richtig verstehe, werden diese beim nächsten Relabel gelöscht. Gibt es eine Möglichkeit, die aktuellen Kontexte (vorzugsweise nur unter einem bestimmten Verzeichnis) dauerhaft zu machen? Ich verstehe, dass es eine Möglichkeit gibt, dies zu tun semanage, aber das bedeutet, den Kontext jeder Datei erneut zu überprüfen und aufzurufen semanage, um eine Regel festzulegen . Gibt es also eine automatisierte Möglichkeit, dies zu tun?

brianmearns
quelle

Antworten:

5

Zunächst korrigieren Sie, semanage fcontext -a -t <type> <filepattern>dass Dateiänderungen dauerhaft sind, indem Sie sie der Richtlinie hinzufügen. Sie müssen restorecon -R -v <filepattern>diese Änderungen neu kennzeichnen oder anwenden. chconändert nicht die Richtlinie, sondern nur den Kontext auf der Festplatte.

Sie können eine Liste mit Unterschieden zu Ihrer gekennzeichneten Richtlinie erstellen matchpathcon, insbesondere mit:

matchpathcon -V /path/to/file

Leider gibt es keine rekursive Option, wahrscheinlich aufgrund der Tatsache, dass das Gehen auf dem Baum teuer wäre, aber Sie könnten ihn fahren mit:

find / -exec matchpathcon -V {} \;

Seien Sie jedoch vorsichtig. Ich glaube, find wird alle Dateisystem-Mounts durchlaufen, einschließlich Dateisysteme ohne erweiterte Attribute (xattrs), die Probleme verursachen könnten. Wenn alle Ihre Dateisysteme erweiterte Attribute haben, gibt es natürlich kein Problem.

Sobald Sie diese Liste haben, können Sie ein Skript schreiben, um die auszuwählen, die Sie haben semanage. Ich kenne jedoch keine automatisierte Möglichkeit, dies mit einem Schlag zu tun.


quelle
3

Die Verwendung matchpathconmit findist sehr langsam. Warum nicht verwenden restorecon?

restorecon -rnv /path/to/dir

Die Flags sind rekursiv, unverändert und ausführlich.

user33688
quelle