GNU/Linux >> Znalost Linux >  >> Cent OS

Jak změnit výchozí oprávnění /var/log/messages v CentOS/RHEL

Ve výchozím nastavení jsou /var/log/messages* vytvořeny s oprávněními pro čtení a zápis pouze pro uživatele „root“. Může existovat požadavek, aby byl svět protokolových souborů čitelný, např. aby aplikace mohla číst a zpracovávat data v něm. Změna oprávnění u takových souborů pomocí „chmod“ může být dočasným řešením, protože budou znovu vytvořeny s původním oprávněním během další úlohy logrotate cron. Tento příspěvek vám pomůže pochopit, jak trvale nastavit vlastní oprávnění (např. 644) pro /var/log/messages.

Pro CentOS/RHEL 4 a 5 (pomocí syslogd)

1. Tlačítko „vytvořit xxxx ” v /etc/logrotate.d/syslog konfigurační soubor řídí oprávnění souborů protokolu spravovaných démonem syslogd.

2. Níže uvedený příklad ukazuje, jak změnit oprávnění pro /var/log/messages na 644 (čitelné ve světě). Protože záměrem je změnit oprávnění POUZE u jednoho souboru protokolu (např. /var/log/messages), vytváříme novou konfigurační sekci v /etc/logrotate.d/syslog speciálně pro změny na /var/log/messages.

Aktuální oprávnění:

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

3. Nejprve odstraňte /var/log/messages z hlavní části souboru /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
}

a Vytvořte novou sekci pro /var/log/messages, jak je uvedeno níže, a připojte ji ke stejnému souboru.

/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

}
Poznámka :syslogd automaticky nezmění oprávnění k žádnému souboru, který již existuje. Zkopírujte nebo přesuňte původní soubor (soubory) a vynuťte okamžité otočení, aby se změny projevily.

4. Ručně otočte syslog, abyste viděli změnu oprávnění.

# 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

Všechny následující soubory protokolu budou vytvořeny s oprávněním „644“.

Pro CentOS/RHEL 6 a 7 (pomocí rsyslogd verze>3)

$FileCreateMode direktiva a $umask direktiva v /etc/rsyslog.conf konfigurační soubor umožňuje specifikovat režim vytváření, se kterým rsyslogd vytváří nové soubory. Ve výchozím nastavení je direktiva $FileCreateMode zkompilována jako 0644, což by v ideálním případě mělo vytvářet soubory spravované rsyslog s oprávněním 644, ale protože skutečné oprávnění závisí na umask procesu rsyslogd, všechny soubory se vytvoří s oprávněními 600. Chcete-li to opravit, upravte /etc/rsyslog.conf a přidejte „$umask 0000“ hned na začátek souboru, který vyžaduje úpravu.

Níže uvedený příklad ukazuje, jak změnit oprávnění pro /var/log/messages na 644 (čitelné ve světě)

1. Zkontrolujte aktuální oprávnění souboru /va/log/messages:

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

2. Upravte konfigurační soubor /etc/rsyslog.conf a direktivu “$umask 0000” v horní části souboru.

# 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)
Poznámka :rsyslogd automaticky nezmění oprávnění k žádnému souboru, který již existuje. Aby se nová oprávnění projevila, museli byste soubor odstranit nebo přesunout a znovu načíst rsyslogd.

3. Přesuňte aktuální soubor /var/log/messages na jiné místo. To nám umožní vytvořit nový soubor zpráv s našimi nově definovanými oprávněními.

# mv /var/log/messsages /tmp/

4. Restartujte službu rsyslog, aby se vygeneroval nový soubor /var/log/messages.

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

5. Znovu zkontrolujte oprávnění souboru.

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

To je vše. Všechny následující soubory protokolu budou nyní vytvořeny s oprávněním „644“.


Cent OS
  1. Jak systemd-tmpfiles vyčistí /tmp/ nebo /var/tmp (náhrada tmpwatch) v CentOS / RHEL 7

  2. Auditované zprávy se zaplňují /var/log/messages

  3. fprintd zaznamenává zprávy do /var/log/messages, i když USEFPRINTD=no v /etc/sysconfig/authconfig (CentOS/RHEL 7)

  1. Co jsou zprávy „segfault“ v souboru /var/log/messages

  2. Změna názvu hostitele se neodráží v /var/log/messages pro CentOS/RHEL

  3. CentOS / RHEL :Jak otočit soubory /var/log/wtmp a /var/log/btmp pomocí logrotate

  1. Jak změnit výchozí adresář protokolu (/var/log) v Rsyslog pro CentOS/RHEL 6,7

  2. Jak změnit cestu k souboru protokolu auditu /var/log/audit/audit.log

  3. Jak změnit výchozí oprávnění v souboru /var/log/audit/audit.log v CentOS/RHEL