5.2. Analyse des messages de refus SELinux
Après avoir identifié que SELinux bloque votre scénario, vous devrez peut-être analyser la cause première avant de choisir une solution.
Conditions préalables
-
Les paquets
policycoreutils-python-utils
etsetroubleshoot-server
sont installés sur votre système.
Procédure
Lister plus de détails sur un refus enregistré à l'aide de la commande
sealert
, par exemple :$ sealert -l "*" SELinux is preventing /usr/bin/passwd from write access on the file /root/test. ***** Plugin leaks (86.2 confidence) suggests ***************************** If you want to ignore passwd trying to write access the test file, because you believe it should not need this access. Then you should report this as a bug. You can generate a local policy module to dontaudit this access. Do # ausearch -x /usr/bin/passwd --raw | audit2allow -D -M my-passwd # semodule -X 300 -i my-passwd.pp ***** Plugin catchall (14.7 confidence) suggests ************************** ... Raw Audit Messages type=AVC msg=audit(1553609555.619:127): avc: denied { write } for pid=4097 comm="passwd" path="/root/test" dev="dm-0" ino=17142697 scontext=unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0 ... Hash: passwd,passwd_t,admin_home_t,file,write
Si les résultats obtenus à l'étape précédente ne contiennent pas de suggestions claires :
Activez l'audit du chemin complet pour voir les chemins d'accès complets aux objets accédés et pour rendre visibles des champs supplémentaires de l'événement Linux Audit :
# auditctl -w /etc/shadow -p w -k shadow-write
Vider le cache de
setroubleshoot
:# rm -f /var/lib/setroubleshoot/setroubleshoot.xml
- Reproduire le problème.
Répéter l'étape 1.
Une fois la procédure terminée, désactivez l'audit du chemin complet :
# auditctl -W /etc/shadow -p w -k shadow-write
-
Si
sealert
ne renvoie que des suggestionscatchall
ou suggère d'ajouter une nouvelle règle à l'aide de l'outilaudit2allow
, comparez votre problème aux exemples répertoriés et expliqués dans SELinux denials (refus d'autorisation SELinux) dans le journal d'audit.
Ressources supplémentaires
-
sealert(8)
page de manuel