Rendre tous les contextes SELinux permanents

9

J'ai fait beaucoup de choses chconrécemment, mais si je comprends bien, celles-ci seront effacées lors du prochain réétiquetage. Existe-t-il un moyen de rendre permanents les contextes actuels (de préférence juste sous un certain répertoire)? Je comprends qu'il existe un moyen de le faire en utilisant semanage, mais cela signifie revenir en arrière et vérifier le contexte de chaque fichier et invoquer semanagepour définir une règle. Existe-t-il un moyen automatisé de le faire?

brianmearns
la source

Réponses:

5

, Vous êtes d' abord jusqu'à correctin qui semanage fcontext -a -t <type> <filepattern>rend le fichier des changements permanents en les ajoutant à la politique - vous devrez ré - étiqueter ou restorecon -R -v <filepattern>d'appliquer ces changements. chconne modifie pas la politique, juste le contexte sur le disque.

Vous pouvez générer une liste de différences avec votre stratégie étiquetée avec matchpathcon, en particulier:

matchpathcon -V /path/to/file

Malheureusement, il n'a pas d'option récursive, probablement en raison du fait que marcher sur l'arbre coûterait cher, mais vous pouvez le conduire avec:

find / -exec matchpathcon -V {} \;

Attention cependant. Je crois que find traversera tous les supports de système de fichiers, y compris les systèmes de fichiers sans attributs étendus (xattrs), ce qui pourrait causer des problèmes. Bien sûr, si tous vos systèmes de fichiers ont des attributs étendus, il n'y a pas de problème.

Une fois que vous avez cette liste, vous pouvez ensuite écrire un script pour choisir ceux que vous aurez semanage. Cependant, je ne connais pas de manière automatisée de le faire en une seule fois.


la source
3

L'utilisation matchpathconavec findest très lente. Pourquoi ne pas utiliser restorecon?

restorecon -rnv /path/to/dir

les indicateurs sont récursifs, sans changement et verbeux.

user33688
la source