viernes, 16 de agosto de 2013

Solución al problema de archivos de registro vacios en ubuntu

Esté post es una traducción de uno anterior. Hoy estaba tratando de configurar un cronjob o tarea programada y al tratar de verificar que todo estaba funcionando correctamente descubrí que el archivo /var/log/syslog estaba vacío, hace algunos días solucioné un problema similar con /var/log/auth.log el cual no tenía asignado el propietario correcto. Tras darme cuenta que el archivo syslog también estba vació empecé a sospechar que había algún tipo de problema con la configuración de mi servidor. Después de una pequeña busqueda encontré este post y se hizo bastante claro la causa del problema.

El problema
Al parecer hay varios archivos cuyo dueño es el usuario messagebus sin embargo ese no es el que debería ser dueño de dichos archivos, de acuerdo a la siguiente documentación que habla sobre bajar provilegios en rsyslog las siguientes líneas en el archivo /etc/rsyslog.conf definen el usuario y grupo a personificar después de que se completa el proceso de inicio:
$PrivDropToUser syslog
$PrivDropToGroup syslog
Como pueden ver el que debería ser dueño de dichos archivos de log mencionados antes es el usuario syslog.

La solución
Tal como indica Dan Ballard aquí necesitamos listar los archivos que tienen el dueño incorrecto.
ls -l /var/log/ | grep messagebus
Un ejemplo de lo que regresa el comando anterior es:
-rw-r----- 1 messagebus adm        0 oct 22  2012 kern.log
-rw-r----- 1 messagebus adm        0 oct 22  2012 mail.err
-rw-r----- 1 messagebus adm        0 oct 22  2012 mail.log
-rw-r----- 1 messagebus adm        0 mar 13 06:26 syslog
-rw-r----- 1 messagebus adm        0 oct 22  2012 ufw.log
Para finalizar el Sr. Ballard dice que simplemente debemos borrar esos archivos y reiniciar el servicio rsyslog, pero ten mucho cuidado con el comando rm.
Usa algo como lo siguiente para eliminar los archivos de log:
sudo rm -vi /var/log/syslog
Y algo como esto para reiniciar rsyslog
service rsyslog restart
En mi caso yo prefiero en vez de borrarlos cambiarle el propietario a los archivos mencionados usando:
sudo chown syslog:syslog /var/log/syslog
sudo chown syslog:syslog /var/log/kern.log
sudo chown syslog:syslog /var/log/mail.err
sudo chown syslog:syslog /var/log/mail.log
sudo chown syslog:syslog /var/log/ufw.log
ADVERTENCIA: No traten de cambiar los propietarios de todos los archivos dentro del directorio /var/log puesto que algunos podrían necesitar mantenerse como están, es decir podrían dejar de funcionar si les cambian el propietario.

Hasta la próxima.