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

changer le mot de passe root d un server mysql

‘service mysql’ stop

wait until MySQL shuts down. Then run

mysqld_safe –skip-grant-tables &

then you will be able to login as root with no assword.

mysql’ ‘-uroot mysql

In MySQL command line prompt issue the following command:

UPDATE user SET password=PASSWORD(abcd ») WHERE ser= »root »;
FLUSH’ ‘PRIVILEGES;
EXIT

/etc/init.d/mysqld restart

At this time your root password is reset to  »abcd » and MySQL will ow
know the privileges and you’ll’ ‘be able to login with your new password:

mysql -uroot -p
taper  »abcd » »’

Lost my mysql root password… not such a pain…

Stop Mysql

service mysql stop

wait until MySQL shuts down. Then run

mysqld_safe --skip-grant-tables &

then you will be able to login as root with no assword.

mysql -u root mysql

In MySQL command line prompt issue the following command:

UPDATE user SET password=PASSWORD('abcd') WHERE user=`root`@`localhost`; FLUSH PRIVILEGES; EXIT

Restart Mysql:

/etc/init.d/mysqld restart

Now your root password is reset to  »abcd » and you’ll be able to login with your new password:

mysql -u root -p