MySQL no puede escribir en el dir /tmp

Esta es la entrada 11 de 11 en la serie: Administrar MySQL desde la línea de comandos

MySQL
Ayer estuve realizando algunas operaciones con el SELinux en el servidor de desarrollo y a partir de ese momento el MySQL emitía un error de que no podía escribir en el dir /tmp, al reiniciar el servidor mysql en inspeccionar su log con:

# tail -f /var/log/mysqld.log

emitía el siguiente error

/usr/libexec/mysqld: error while loading shared libraries: 
librt.so.1: cannot open shared object file: Permission denied

Luego inspeccioné el messages log

# tail -f /var/log/messages
...
avc:  denied  { search } for  pid=1860 comm="mcstransd" name="/" 
dev=sda2 ino=2 scontext=system_u:system_r:setrans_t:s0-s0:c0.c1023 
tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=dir
...

De la operación anterior me dí cuenta que había cambiado el contexto al dir root (/) a httpd_sys_content_t por tanto la solución fue restablecer el contexto:

# chcon -t root_t /

Luego:

# service mysqld start

y todo funcionó Ok.

Conclusión

El SELinux incrementa el nivel de seguridad de los servidores GNU/Linux pero debemos ser cuidadosos cuando trabajamos con él pues puede provocar que nuestros servicios dejen de funcionar por minutos o por horas.

Recomendación

Tener un servidor de pruebas donde Ud. pueda ejecutar todas las operaciones necesarias con el SELinux antes de realizarlas en un servidor de producción.




Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *