Configurer selinux et Mysql sur une base redhat

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