SELinux: Autoriser un nouveau service systemd
Tout dépend du niveau de sécurité configuré pour SELinux.
Il existe 3 modes différents:
- enforcing
- permissive
- disabled
Dans le cas des 2 derniers (permissive & disabled) il ne devrait pas y avoir de problème pour activer et démarrer un nouveau service systemd.
Par contre, si le mode est enforcing, il y a de grandes chances pour que cela empêche le démarrage d'un nouveau service.
Pour le vérifier:
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
Donc, si le mode SELinux est enforcing et que vous avez créé un nouveau service et que celui-ci n'arrive pas à démarrer, suivre la procédure ci-dessous.
Exemple avec une distribution AlmaLinux:
Installer le paquet policycoreutils-python-utils.noarch
$ sudo dnf install -y policycoreutils-python-utils.noarch
Exécuter les 2 commandes suivantes:
$ sudo ausearch -m avc -ts today | audit2allow -M le_nom_de_mon_service
$ sudo semodule -i le_nom_de_mon_service.pp
En théorie, l'exécution de la première commande indique d'exécuter la seconde commande.
Modifier le terme le_nom_de_mon_service
Et enfin:
$ sudo systemctl start le_nom_de_mon_service.service
$ sudo systemctl status le_nom_de_mon_service.service
Le problème devrait être réglé.
Ajouter un commentaire