GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come modificare l'autorizzazione predefinita di /var/log/messages in CentOS/RHEL

Per impostazione predefinita, /var/log/messages* vengono creati con autorizzazioni di lettura-scrittura solo per l'utente "root". Potrebbe essere necessario rendere leggibili i file di registro, ad esempio per consentire a un'applicazione di leggere ed elaborare i dati in esso contenuti. La modifica delle autorizzazioni su tali file utilizzando "chmod" potrebbe essere una soluzione temporanea poiché verranno ricreate con l'autorizzazione originale durante il prossimo lavoro cron logrotate. Questo post ti aiuterà a capire come impostare autorizzazioni personalizzate (ad es. 644) su /var/log/messages in modo permanente.

Per CentOS/RHEL 4 e 5 (usando syslogd)

1. Il "crea xxxx ” in /etc/logrotate.d/syslog config file controlla i permessi dei file di registro gestiti dal demone syslogd.

2. L'esempio seguente mostra come modificare l'autorizzazione su /var/log/messages in 644 (leggibile in tutto il mondo). Poiché l'intenzione è di modificare SOLO i permessi su un singolo file di log (ad es. /var/log/messages), stiamo creando una nuova sezione di configurazione in /etc/logrotate.d/syslog specificatamente per le modifiche su /var/log/messages.

Autorizzazioni attuali:

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

3. Innanzitutto, rimuovi /var/log/messages dalla sezione principale nel file /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
}

e Crea una nuova sezione per /var/log/messages come mostrato di seguito e aggiungila allo stesso file.

/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 non cambierà automaticamente i permessi su nessun file già esistente. Copia o sposta i file originali e forza una rotazione immediata affinché le modifiche abbiano effetto.

4. Ruota manualmente il syslog per vedere la modifica delle autorizzazioni.

# 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

Tutti i file di registro successivi verranno creati con l'autorizzazione "644".

Per CentOS/RHEL 6 e 7 (usando rsyslogd versione>3)

La Modalità $FileCreate direttiva e $umask direttiva in /etc/rsyslog.conf file di configurazione consente di specificare la modalità di creazione con cui rsyslogd crea nuovi file. Per impostazione predefinita, la direttiva $FileCreateMode è compilata come 0644, che idealmente dovrebbe creare file gestiti da rsyslog con l'autorizzazione 644, ma poiché l'autorizzazione effettiva dipende dal processo umask di rsyslogd, tutti i file vengono creati con 600 autorizzazioni. Per risolvere questo problema, modifica /etc/rsyslog.conf e aggiungi "$umask 0000" proprio all'inizio del file che deve essere modificato.

L'esempio seguente mostra come modificare l'autorizzazione su /var/log/messages in 644 (leggibile dal mondo)

1. Controlla le autorizzazioni correnti del file /va/log/messages:

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

2. Modificare il file di configurazione /etc/rsyslog.conf e la direttiva “$umask 0000” nella parte superiore del file.

# 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 non cambierà automaticamente i permessi su nessun file già esistente. Dovresti eliminare o spostare il file e ricaricare rsyslogd per rendere effettive le nuove autorizzazioni.

3. Sposta il file /var/log/messages corrente in un'altra posizione. Questo ci consentirà di creare un nuovo file di messaggi con le nostre autorizzazioni appena definite.

# mv /var/log/messsages /tmp/

4. Riavviare il servizio rsyslog per generare un nuovo file /var/log/messages.

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

5. Controlla di nuovo l'autorizzazione del file.

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

Questo è tutto. Tutti i file di registro successivi verranno ora creati con l'autorizzazione "644".


Cent OS
  1. Come systemd-tmpfiles pulisce /tmp/ o /var/tmp (sostituzione di tmpwatch) in CentOS/RHEL 7

  2. Come modificare il percorso del file di registro auditd /var/log/audit/audit.log

  3. Come modificare le autorizzazioni predefinite sul file /var/log/audit/audit.log in CentOS/RHEL

  4. I messaggi Auditd si stanno riempiendo /var/log/messages

  5. fprintd Registra i messaggi in /var/log/messages Anche se USEFPRINTD=no in /etc/sysconfig/authconfig (CentOS/RHEL 7)

Come modificare il nome host in RHEL 8 / CentOS 8

Come modificare il runlevel corrente/predefinito in CentOS 8 / RHEL 8

Come modificare il file di registro di Sudo predefinito in Linux

Come modificare il runlevel corrente in RHEL 8/CentOS 8

Come modificare il nome host in CentOS/RHEL 8

Come modificare il nome host in CentOS/RHEL 7