GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment modifier l'autorisation par défaut de /var/log/messages dans CentOS/RHEL

Par défaut, /var/log/messages* sont créés avec des autorisations de lecture-écriture pour l'utilisateur « root » uniquement. Il peut être nécessaire de rendre les fichiers journaux lisibles par tous, par exemple pour permettre à une application de lire et de traiter les données qu'ils contiennent. Changer les autorisations sur ces fichiers à l'aide de "chmod" peut être une solution temporaire car ils seront recréés avec l'autorisation d'origine lors de la prochaine tâche cron de logrotate. Cet article vous aidera à comprendre comment définir des autorisations personnalisées (par exemple, 644) sur /var/log/messages de manière permanente.

Pour CentOS/RHEL 4 et 5 (avec syslogd)

1. Le "créer xxxx ” directive dans /etc/logrotate.d/syslog config contrôle l'autorisation des fichiers journaux gérés par le démon syslogd.

2. L'exemple ci-dessous montre comment changer l'autorisation sur /var/log/messages à 644 (universellement lisible). Étant donné que l'intention est de modifier UNIQUEMENT les autorisations sur un seul fichier journal (par exemple /var/log/messages), nous créons une nouvelle section de configuration dans /etc/logrotate.d/syslog spécifiquement pour les modifications sur /var/log/messages.

Autorisations actuelles :

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

3. Tout d'abord, supprimez le /var/log/messages de la section principale dans le fichier /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
}

et Créez une nouvelle section pour /var/log/messages comme indiqué ci-dessous et ajoutez-la au même fichier.

/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

}
Remarque :syslogd ne changera pas automatiquement les permissions sur un fichier qui existe déjà. Copiez ou déplacez le ou les fichiers d'origine et forcez une rotation immédiate pour que les modifications prennent effet.

4. Faites pivoter manuellement le journal système pour voir la modification des autorisations.

# 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

Tous les fichiers journaux suivants seront créés avec l'autorisation "644".

Pour CentOS/RHEL 6 et 7 (en utilisant la version rsyslogd>3)

Le $FileCreateMode directive et $umask directive dans /etc/rsyslog.conf Le fichier de configuration permet de spécifier le mode de création avec lequel rsyslogd crée de nouveaux fichiers. Par défaut, la directive $FileCreateMode est compilée en tant que 0644, ce qui devrait idéalement créer des fichiers gérés par rsyslog avec l'autorisation 644, mais puisque l'autorisation réelle dépend du processus umask de rsyslogd, tous les fichiers sont créés avec 600 autorisations. Pour résoudre ce problème, modifiez /etc/rsyslog.conf et ajoutez "$umask 0000" juste au début du fichier à modifier.

L'exemple ci-dessous montre comment changer l'autorisation sur /var/log/messages à 644 (universellement lisible)

1. Vérifiez les autorisations actuelles du fichier /va/log/messages :

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

2. Modifiez le fichier de configuration /etc/rsyslog.conf et la directive « $umask 0000 » en haut du fichier.

# 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)
Remarque :rsyslogd ne changera pas automatiquement les permissions sur un fichier qui existe déjà. Vous devrez supprimer ou déplacer le fichier et recharger rsyslogd pour que les nouvelles autorisations prennent effet.

3. Déplaçons le fichier /var/log/messages actuel vers un autre emplacement. Cela nous permettra de créer un nouveau fichier de messages avec nos autorisations nouvellement définies.

# mv /var/log/messsages /tmp/

4. Redémarrez le service rsyslog pour générer un nouveau fichier /var/log/messages.

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

5. Vérifiez à nouveau l'autorisation du fichier.

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

C'est tout. Tous les fichiers journaux suivants seront désormais créés avec l'autorisation "644".


Cent OS
  1. Comment systemd-tmpfiles nettoie /tmp/ ou /var/tmp (remplacement de tmpwatch) dans CentOS / RHEL 7

  2. Comment modifier les autorisations par défaut sur le fichier /var/log/audit/audit.log dans CentOS/RHEL

  3. Les messages auditd se remplissent /var/log/messages

  4. fprintd enregistre les messages dans /var/log/messages même si USEFPRINTD=no dans /etc/sysconfig/authconfig (CentOS/RHEL 7)

  5. Que sont les messages "segfault" dans le fichier /var/log/messages

Comment changer le nom d'hôte dans RHEL 8 / CentOS 8

Comment changer le niveau d'exécution actuel/par défaut dans CentOS 8 / RHEL 8

Comment changer le fichier journal Sudo par défaut sous Linux

Comment changer le niveau d'exécution actuel dans RHEL 8 / CentOS 8

Comment changer le nom d'hôte dans CentOS/RHEL 8

Comment changer le nom d'hôte dans CentOS/RHEL 7