6.10. Permettre aux utilisateurs MLS de modifier les fichiers aux niveaux inférieurs
Par défaut, les utilisateurs MLS ne peuvent pas écrire dans des fichiers dont le niveau de sensibilité est inférieur à la valeur la plus basse de la plage d'autorisation. Si votre scénario exige que vous autorisiez les utilisateurs à modifier des fichiers à des niveaux inférieurs, vous pouvez le faire en créant un module SELinux local. Toutefois, l'écriture dans un fichier augmentera son niveau de sensibilité jusqu'à la valeur inférieure de la plage actuelle de l'utilisateur.
Conditions préalables
-
La politique SELinux est définie sur
mls
. -
Le mode SELinux est défini sur
enforcing
. -
Le paquet
policycoreutils-python-utils
est installé. -
Les paquets
setools-console
etaudit
pour vérification.
Procédure
En option : Passer en mode permissif pour faciliter le dépannage.
# setenforce 0
Ouvrez un nouveau fichier
.cil
avec un éditeur de texte, par exemple~/local_mlsfilewrite.cil
, et insérez la règle personnalisée suivante :(typeattributeset mlsfilewrite (_staff_t_))
Vous pouvez remplacer
staff_t
par un type SELinux différent. En spécifiant le type SELinux ici, vous pouvez contrôler quels rôles SELinux peuvent éditer des fichiers de niveau inférieur.Pour mieux organiser vos modules locaux, utilisez le préfixe
local_
dans les noms des modules de politique SELinux locaux.Installer le module de politique :
# semodule -i ~/local_mlsfilewrite.cil
NotePour supprimer le module de politique locale, utilisez
semodule -r ~/local_mlsfilewrite
. Notez que vous devez vous référer au nom du module sans le suffixe.cil
.Facultatif : si vous avez précédemment rétabli le mode permissif, revenez au mode exécutoire :
# setenforce 1
Vérification
Trouver le module local dans la liste des modules SELinux installés :
# semodule -lfull | grep "local_mls" 400 local_mlsfilewrite cil
Comme les modules locaux ont la priorité
400
, vous pouvez également les lister en utilisant la commandesemodule -lfull | grep -v ^100
.-
Se connecter en tant qu'utilisateur assigné au type défini dans la règle personnalisée, par exemple,
staff_t
. Tenter d'écrire dans un fichier dont le niveau de sensibilité est inférieur. Le niveau de classification du fichier est alors porté au niveau d'habilitation de l'utilisateur.
ImportantLes fichiers utilisés pour la vérification ne doivent pas contenir d'informations sensibles, au cas où la configuration serait incorrecte et où l'utilisateur pourrait accéder aux fichiers sans autorisation.