MySQL tmpdir sur / dev / shm avec SELinux

Sur RHEL5, j'ai une petite database MySQL qui doit écrire des files temporaires. Pour accélérer ce process, j'aimerais déplacer le directory temporaire vers / dev / shm en mettant la ligne suivante dans my.cnf:

tmpdir=/dev/shm/mysqltmp 

Je peux créer / dev / shm / mysqltmp très bien et faire

 chown mysql:mysql /dev/shm/mysqltmp chcon --reference /tmp/ /dev/shm/mysqltmp 

J'ai essayé de faire SELinux heureux en appliquant les mêmes parameters en vigueur pour / tmp / (et / var / tmp /), ce qui est vraisemblablement où MySQL écrit ses files tmp si tmpdir est indéfini.

Le problème est que SELinux se plaint de MySQL ayant access à ce directory. Je reçois ce qui suit dans / var / log / messages:

 SELinux is preventing mysqld (mysqld_t) "getattr" to /dev/shm (tmpfs_t). 

SELinux est une maîtresse difficile. Détails:

 Source Context root:system_r:mysqld_t Target Context system_u:object_r:tmpfs_t Target Objects /dev/shm [ dir ] Source mysqld Source Path /usr/libexec/mysqld Port <Unknown> Host db.example.com Source RPM Packages mysql-server-5.0.77-3.el5 Target RPM Packages Policy RPM selinux-policy-2.4.6-255.el5_4.1 Selinux Enabled True Policy Type targeted MLS Enabled True Enforcing Mode Enforcing Plugin Name catchall_file Host Name db.example.com Platform Linux db.example.com 2.6.18-164.2.1.el5 #1 SMP Mon Sep 21 04:37:42 EDT 2009 x86_64 x86_64 Alert Count 46 First Seen Wed Nov 4 14:23:48 2009 Last Seen Thu Nov 5 09:46:00 2009 Local ID e746d880-18f6-43c1-b522-a8c0508a1775 

ls -lZ / dev / shm montre

 drwxrwxr-x mysql mysql system_u:object_r:tmp_t mysqltmp 

et les permissions pour / dev / shm lui-même sont

 drwxrwxrwt root root system_u:object_r:tmpfs_t shm 

J'ai également essayé

 chcon -R -t mysqld_t /dev/shm/mysqltmp 

et configurer le groupe sur / dev / shm pour mysql sans résultats meilleurs. Ne devrait-il pas suffire de dire SELinux, hey, il s'agit d'un directory temporaire comme MySQL l'utilisait auparavant?

Avant d'éteindre SELinux, comment puis-je que cela fonctionne? Dois-je modifier les files de stratégie SELinux?

2 Solutions collect form web for “MySQL tmpdir sur / dev / shm avec SELinux”

 SELinux is preventing mysqld (mysqld_t) "getattr" to /dev/shm (tmpfs_t). 

Cela signifie que SELinux refuse l'access à /dev/shm dir, qui est un parent de /dev/shm/mysqltmp .

 ls -lZd /tmp/ drwxrwxrwt 3 system_u:object_r:tmp_t:s0 ls -lZd /dev/shm drwxrwxrwt root root system_u:object_r:tmpfs_t:s0 

Vous avez 3 options:

1) Changer /dev/shm label de type /dev/shm de tmpfs_t à tmp_t

2) Exécutez SELinux en mode permissif et collectez tous les refus dans /var/log/audit/audit.log

 tail -n 0 -f /var/log/audit/audit.log | audit2allow -m myMySQL -o myMySQL.te checkmodule -M -m myMySQL.te -o myMySQL.mod semodule_package -m myMySQL.mod -o myMySQL.pp 

Vous devez vérifier si myMySQL.te contient uniquement les permissions nécessaires. Enfin, vous chargez le module en semodule -i myMySQL.pp module kernel semodule -i myMySQL.pp

3) Désactivez la protection SELinux pour MySQL setsebool -P mysqld_disable_trans=on

Faites votre propre tmpfs et écrivez-le avec tout ce dont vous avez besoin: http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/ / dev / shm est utilisé par glibc pour POSIX memory partagée, alors je conseillerais de ne pas l'utiliser.

  • vsftpd + vitual users + selinux
  • SELinux empêche les plugins Nagios de s'exécuter sur RHEL6
  • Port SELinux "défini dans la politique, ne peut pas être supprimé"
  • Permettre à httpd d'exécuter un script bash dans / usr / bin /
  • SElinux: Comment passer en mode permissif sans redémarrage?
  • proftpd accède à my.cnf
  • Selinux semanage supprime ou modifie la string
  • SELinux prévenant les tasses-pdf output to samba shared directory
  • linux: download / download la différence sur les partages réseau
  • SELinux - Le script a téléchargé des keys SSH sur un server distant mais ne peut pas se connecter via SSH
  • nginx redirige tout le monde vers une page 403, peut-on le débarrasser ou le retracer?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.