Au passage les commandes pour un changement de la basedir et résolution du problème de read/write dans mysql.log lorsque selinux est mal configuré
Tout d’abord avoir les outils indispensables:
- Vérifier que vous avez tout ce qu’il faut:
rpm -q checkpolicy libselinux libselinux-python libselinux-utils libsemanage libsepol policycoreutils selinux-policy selinux-policy-minimum selinux-policy-mls selinux-policy-strict selinux-policy-targeted setroubleshoot setroubleshoot-server setroubleshoot-plugins setools
- Pour les fan de gui :
rpm -q mcstrans setools-gui policycoreutils-gui
Réparer :
- Arrêter Mysql
- Définir le context de mysql au cas ou vous auriez supprimé ou changé le répertoire par défaut:
semanage fcontext -a -t mysqld_db_t "/chemin/mysql(/.*)?"
- Rétablir le context:
restorecon -Rv /chemin/mysql
les outils d’analyse pour ceux qui veulent comprendre avec de lancer des commandes dans la nature…:
- Afficher les rejets du jour et une explication :
ausearch -m avc -ts today | audit2why
- Afficher les derniers rejets et une ce qu’il faudrait faire pour y remedier (pas toujours tres parlant):
ausearch -m avc -ts recent| audit2allow
En vrac:
- Forcer le context sur un répertoire et son contenu sans passer par le semanage: (ici donner les droits à httpd)
chcon -t httpd_sys_content_t -R /chemin/
- lister les modules selinux installé (il donne les contextes)
semodule -l
- voir les contextes des fichiers:
ls -Z
- donner le droit sur un port spécial (ici pour httpd sur le 8081):
semanage port -a -t http_port_t -p tcp 8081