SELinux, c'est le contrôle d'accès obligatoire (MAC) intégré au noyau Linux : là où les permissions Unix classiques laissent décider l'utilisateur propriétaire, SELinux décide selon une politique globale, indépendamment des droits sur les fichiers. Actif par défaut sur AlmaLinux, il demande une approche différente — et l'apprendre sur le terrain commence parfois par casser quelque chose.

Confiner un utilisateur à risque

Premier cas concret : empêcher un utilisateur externe d'exécuter des scripts depuis les dossiers où il peut écrire. La réponse SELinux passe par les rôles. Assigner un utilisateur au rôle staff_u (au lieu du unconfined_u par défaut) réduit son périmètre d'action sans modifier une seule permission du système de fichiers. Le Boolean staff_exec_content off interdit ensuite à ce rôle d'exécuter du contenu dans tout répertoire où il peut écrire — /tmp inclus.

Ce qui aurait nécessité un bac à sable ou des règles complexes se règle en deux commandes :

sudo setsebool -P staff_exec_content off

Quand le durcissement se retourne contre lui-même

Le second cas est moins attendu : après avoir appliqué le confinement, l'interface graphique a refusé de démarrer. La politique était si stricte que les processus chargés d'afficher le bureau étaient eux aussi bloqués par SELinux.

Récupérer la situation a demandé de basculer en mode console pure (Ctrl+Alt+F2), de passer temporairement SELinux en mode Permissif (setenforce 0) pour que le système cesse de bloquer tout en continuant à consigner, puis d'analyser les alertes AVC avec ausearch pour identifier exactement ce qui était refusé.


Ce que SELinux apprend à penser

Travailler avec SELinux oblige à raisonner en termes d'identité sécuritaire — le contexte d'un fichier ou d'un processus — plutôt qu'en termes de permissions. Un fichier peut être lisible mais non exécutable selon son type SELinux, indépendamment de son chmod. C'est un niveau de granularité qui ne pardonne pas l'approximation mais offre une surface d'attaque considérablement réduite une fois maîtrisé.

ConceptUtilité
Labels (Contextes)Définissent l'identité sécuritaire d'un fichier (ex: tmp_t)
BooleansPermettent de modifier la politique à la volée sans redémarrer
AusearchL'outil indispensable pour lire les alertes AVC et comprendre les blocages

*Résumé NoteBookLM