Linux: comment appliquer des autorisations spécifiques sur les journaux nouvellement créés qui sont créés par rotation de journal?

15

J'ai remarqué que les journaux de messagerie en cours de création /var/logsont créés et détenus par root (utilisateur et groupe). J'ai écrit un chèque Nagios qui surveille le journal et afin de permettre à l'utilisateur Nagios d'y accéder, j'ai donné au othergroupe des autorisations de lecture, c'est-à-dire:

chmod o+r /var/log/maillog

Maintenant, quand j'y pense, ce n'est qu'un seul fichier journal, lorsque le fichier journal sera rempli, le mécanisme de rotation du journal renommera ce fichier et en ouvrira un nouveau, mais le nouveau maillogfichier n'aura pas celui read writeque j'ai autorisé.

Donc ma question est, comment puis-je m'assurer que le mécanisme de rotation des journaux créera tous les nouveaux fichiers mailllog avec les bonnes autorisations pour l'utilisateur Nagios?

Merci d'avance

Itai Ganot
la source

Réponses:

21

logrotatea l' createoption:

create mode owner group

Immédiatement après la rotation (avant l'exécution du script de post-rotation), le fichier journal est créé (avec le même nom que le fichier journal qui vient de pivoter). modespécifie le mode du fichier journal en octal (le même que chmod (2)), le propriétaire spécifie le nom d'utilisateur qui sera propriétaire du fichier journal et le groupe spécifie le groupe auquel le fichier journal appartiendra. N'importe lequel des attributs du fichier journal peut être omis, auquel cas ces attributs pour le nouveau fichier utiliseront les mêmes valeurs que le fichier journal d'origine pour les attributs omis. Cette option peut être désactivée à l'aide de l'option nocreate.

Plus d'infos avec man logrotate.

Utilisez-le comme ceci:

/var/log/maillog {
....
        create 664 user group
....
}

dans /etc/logrotate.confou dans un fichier distinct /etc/logrotate.det vérifiez qu'aucun autre fichier ne remplace déjà cela. La façon dont cela est configuré dépend de votre système d'exploitation (par exemple sur Ubuntu, cela est géré dans la rsyslogconfiguration).

Sven
la source
Comment puis-je configurer que seuls les /var/log/maillogfuturs fichiers journaux seront créés avec les autorisations utilisateur souhaitées sans modifier aucun des paramètres par défaut déjà appliqués au maillog?
Itai Ganot
Voir ma modification et lire man logrotate(et regarder dans /etc/logrotate.confet /etc/logrotate.dpour de nombreux exemples).
Sven
2
@ItaiGanot Vous devez également corriger votre configuration syslog afin qu'il crée le fichier avec l'autorisation appropriée, au lieu de faire un chmod initial.
Jenny D
@JennyD, Merci, cela signifie que je devrais supprimer la /var/log/maillogligne /etc/logrotate.d/syslogpour que les paramètres /etc/logrotate.confaient lieu?
Itai Ganot
2
@ItaiGanot Non! Cela signifie que vous devez savoir quel programme syslog vous utilisez (probablement soit syslog-ngou rsyslog) et changer sa configuration. Cela est nécessaire car lorsque votre système est redémarré ou que votre programme syslog est redémarré pour une autre raison, il peut recréer le fichier avec la mauvaise autorisation.
Jenny D