semanage Générateur de commandes
Générer des commandes semanage pour gérer les mappages de politique SELinux (fcontext, login, user, port, boolean)
Premiers pas avec semanage
## Qu’est-ce que semanage ?
`semanage` gère les mappages de politique SELinux — les étiquettes qui indiquent au noyau ce qu’un processus, un fichier, un port ou un utilisateur connecté est *autorisé* à faire. Il ne change pas lui-même le mode strict/permissif (cela relève de `setenforce`) ; au lieu de cela, il configure les mappages persistants utilisés par la politique SELinux.
## Comment l’utiliser
1. **Sélectionner un objet** : `fcontext` (étiquettes de fichiers), `login` (mappage utilisateur Linux → utilisateur SELinux), `user`, `port` ou `boolean`. 2. **Sélectionner une action** : `add` (`-a`), `modify` (`-m`), `delete` (`-d`) ou `list` (`-l`). 3. **Définir le type SELinux** (`-t`) ainsi que la **valeur** (regex de chemin, port, utilisateur, etc.). 4. **Appliquer le contexte du fichier** : Pour les modifications `fcontext`, exécutez `restorecon` par la suite afin que les fichiers existants soient réétiquetés. 5. **Copier et exécuter** : Préfixez par `sudo`.
Objets, actions et options
### Mappages contexte-fichier `fcontext` Associez une expression régulière de chemin à un type SELinux. Après ajout ou modification, exécutez `restorecon -Rv /path` pour réétiqueter les fichiers existants : `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### Mappage utilisateur Linux → utilisateur SELinux `login` Associez un nom d’utilisateur Linux (ou `__default__`) à un utilisateur SELinux, par exemple `semanage login -a -s user_u john`.
### Utilisateurs SELinux `user` Créez ou modifiez des utilisateurs SELinux ainsi que les rôles qu’ils peuvent assumer.
### Mappages port → type `port` Étiquetez un port réseau afin qu’un service confiné puisse s’y associer : `semanage port -a -t http_port_t -p tcp 8080`.
### Booleens de politique `boolean` Activez ou désactivez un booleen nommé pour modifier le comportement d’une politique (`semanage boolean -m --on httpd_can_network_connect`).
### Actions `-a` / `-m` / `-d` / `-l` Ajoutez un nouveau mappage, modifiez un existant, supprimez-en un ou listez les mappages actuels.
▶Qu’est-ce qu’un contexte SELinux et pourquoi est-il important ?
▶J’ai ajouté une règle fcontext, mais httpd ne parvient toujours pas à lire les fichiers — pourquoi ?
▶Comment puis-je autoriser un service à écouter sur un port non standard ?
Si cet outil vous a été utile, pensez à m’offrir un café.
Achetez-moi un café.