GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo cambiar el permiso predeterminado de /var/log/messages en CentOS/RHEL

De forma predeterminada, /var/log/messages* se crean con permisos de lectura y escritura solo para el usuario "raíz". Puede haber un requisito para hacer que los archivos de registro sean legibles para, por ejemplo, permitir que una aplicación lea y procese los datos que contiene. Cambiar los permisos en dichos archivos usando 'chmod' podría ser una solución temporal, ya que se volverán a crear con el permiso original durante el próximo trabajo cron de logrotate. Esta publicación ayudará a comprender cómo establecer permisos personalizados (p. ej., 644) en /var/log/messages de forma permanente.

Para CentOS/RHEL 4 y 5 (usando syslogd)

1. El "crear xxxx ” directiva en /etc/logrotate.d/syslog El archivo de configuración controla el permiso de los archivos de registro administrados por el demonio syslogd.

2. El siguiente ejemplo muestra cómo cambiar el permiso en /var/log/messages a 644 (legible para todo el mundo). Dado que la intención es SOLO cambiar el permiso en un solo archivo de registro (por ejemplo, /var/log/messages), estamos creando una nueva sección de configuración en /etc/logrotate.d/syslog específicamente para cambios en /var/log/messages.

Permisos actuales:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

3. Primero, elimine /var/log/messages de la sección principal en el archivo /etc/logrotate.d/syslog,

# vi /etc/logrotate.d/syslog

 /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {      ### Remove /var/log/messages from main section
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

y Cree una nueva sección para /var/log/messages como se muestra a continuación y agréguela al mismo archivo.

/var/log/messages {                                                                    ### add /var/log/messages to a sub-section

   sharedscripts
   create 0644                                                                         ### This directive will change the permission on /var/log/messages* to 644
   postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript

}
Nota :syslogd no cambiará automáticamente los permisos en ningún archivo que ya exista. Copie o mueva los archivos originales y fuerce una rotación inmediata para que los cambios surtan efecto.

4. Gire manualmente el syslog para ver el cambio en los permisos.

# logrotate --force /etc/logrotate.d/syslog
# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

Todos los archivos de registro posteriores se crearán con el permiso '644'.

Para CentOS/RHEL 6 y 7 (usando rsyslogd versión>3)

El $FileCreateMode directiva y $umask directiva en /etc/rsyslog.conf archivo de configuración permite especificar el modo de creación con el que rsyslogd crea nuevos archivos. De forma predeterminada, la directiva $FileCreateMode se compila como 0644, que idealmente debería crear archivos administrados por rsyslog con el permiso 644, pero dado que el permiso real depende del proceso umask de rsyslogd, todos los archivos se crean con 600 permisos. Para arreglar esto, edite /etc/rsyslog.conf y agregue “$umask 0000” justo al principio del archivo que necesita modificación.

El siguiente ejemplo muestra cómo cambiar el permiso en /var/log/messages a 644 (legible para todo el mundo)

1. Verifique los permisos actuales del archivo /va/log/messages:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

2. Edite el archivo de configuración /etc/rsyslog.conf y la directiva “$umask 0000” en la parte superior del archivo.

# vi /etc/rsyslog.conf
..
$umask 0000                 ### Add this to reset the umask#
$FileCreateMode 0644        ### This line can be omitted as the compiled in default is already set to 644. Modify this value if you need to set permissions other than 644#
*.info;mail.none;authpriv.none;cron.none /var/log/messages
$umask 0077                 ### Add this to set umask back to default, otherwise all files managed by rsyslogd (/eg /var/log/secure) will be created as world readable (644)
Nota :rsyslogd no cambiará automáticamente los permisos en ningún archivo que ya exista. Tendría que eliminar o mover el archivo y volver a cargar rsyslogd para que los nuevos permisos surtan efecto.

3. Vamos a mover el archivo actual /var/log/messages a otra ubicación. Esto nos permitirá crear un nuevo archivo de mensajes con nuestros permisos recién definidos.

# mv /var/log/messsages /tmp/

4. Reinicie el servicio rsyslog para generar un nuevo archivo /var/log/messages.

# service rsyslog restart        ### CentOS/RHEL 6
# systemctl restart rsyslog      ### CentOS/RHEL 7

5. Vuelva a comprobar el permiso del archivo.

# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

Eso es todo. Todos los archivos de registro subsiguientes ahora se crearán con el permiso '644'.


Cent OS
  1. ¿Diferencia entre /var/log/messages, /var/log/syslog y /var/log/kern.log?

  2. Cómo systemd-tmpfiles limpia /tmp/ o /var/tmp (reemplazo de tmpwatch) en CentOS/RHEL 7

  3. Cómo cambiar el directorio de registro predeterminado (/var/log) en Rsyslog para CentOS/RHEL 6,7

  4. El archivo de registro del sistema /var/log/messages se elimina o recorta automáticamente (CentOS/RHEL)

  5. Cómo cambiar el puerto predeterminado de Apache en RHEL/CentOS 7

Cómo cambiar el nombre de host en RHEL 8 / CentOS 8

Cómo cambiar el nivel de ejecución actual/predeterminado en CentOS 8/RHEL 8

Cómo cambiar el archivo de registro de Sudo predeterminado en Linux

Cómo cambiar el nivel de ejecución actual en RHEL 8/CentOS 8

Cómo cambiar el nombre de host en CentOS/RHEL 8

Cómo cambiar el nombre de host en CentOS/RHEL 7