Linux: Wie erzwinge ich bestimmte Berechtigungen für neu erstellte Protokolle, die von log rotate erstellt werden?

15

Ich habe festgestellt, dass die E-Mail-Protokolle, in denen erstellt /var/logwird, von root (Benutzer und Gruppe) erstellt werden und deren Eigentümer sind. Ich habe einen Nagios-Check geschrieben, der das Protokoll überwacht. Damit der Nagios-Benutzer darauf zugreifen kann, habe ich der otherGruppe die folgenden Leseberechtigungen erteilt:

chmod o+r /var/log/maillog

Wenn ich darüber nachdenke, ist dies nur eine Protokolldatei. Wenn die Protokolldatei gefüllt wird, benennt der Protokolldrehmechanismus diese Datei um und öffnet eine neue, aber die neue maillogDatei hat nicht read writedie erlaubte.

Meine Frage ist also, wie ich sicherstellen kann, dass der Log-Rotationsmechanismus alle neuen Mail-Log-Dateien mit den richtigen Berechtigungen für den Nagios-Benutzer erstellt.

Danke im Voraus

Itai Ganot
quelle

Antworten:

21

logrotatehat die createOption:

create mode owner group

Unmittelbar nach der Drehung (bevor das Nachdrehskript ausgeführt wird) wird die Protokolldatei erstellt (mit demselben Namen wie die gerade gedrehte Protokolldatei). modeGibt den Modus für die Protokolldatei in Oktal an (identisch mit chmod (2)), der Besitzer gibt den Benutzernamen an, dem die Protokolldatei gehören wird, und die Gruppe gibt die Gruppe an, zu der die Protokolldatei gehören wird. Alle Attribute der Protokolldatei können weggelassen werden. In diesem Fall verwenden diese Attribute für die neue Datei dieselben Werte wie die ursprüngliche Protokolldatei für die weggelassenen Attribute. Diese Option kann mit der Option nocreate deaktiviert werden.

Mehr Infos mit man logrotate.

Benutze es so:

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

Entweder in /etc/logrotate.confoder in einer separaten Datei, /etc/logrotate.dund prüfen Sie, ob keine andere Datei dies bereits überschreibt. Wie dies konfiguriert wird, hängt von Ihrem Betriebssystem ab (z. B. von Ubuntu, dies wird in der rsyslogKonfiguration behandelt).

Sven
quelle
Wie kann ich konfigurieren, dass nur /var/log/maillogzukünftige Protokolldateien mit den gewünschten Benutzerberechtigungen erstellt werden, ohne die Standardeinstellungen zu ändern, die bereits auf das Maillog angewendet werden?
Itai Ganot
Siehe meine bearbeiten und Lese man logrotate(und Blick in /etc/logrotate.confund /etc/logrotate.dfür viele Beispiele).
Sven
2
@ItaiGanot Sie sollten auch Ihre Syslog-Konfiguration so korrigieren, dass die Datei mit der richtigen Berechtigung erstellt wird, anstatt dass Sie ein erstes chmod ausführen.
Jenny D
@JennyD, Danke, das heißt, ich sollte die /var/log/maillogZeile entfernen , /etc/logrotate.d/syslogdamit die Einstellungen in /etc/logrotate.confstattfinden?
Itai Ganot
2
@ItaiGanot Nein! Es bedeutet, dass Sie herausfinden sollten, welches Syslog-Programm Sie verwenden (wahrscheinlich entweder syslog-ngoder rsyslog) und dessen Konfiguration ändern sollten. Dies ist erforderlich, da beim Neustart des Systems oder beim Neustart des Syslog-Programms aus einem anderen Grund möglicherweise die Datei mit der falschen Berechtigung neu erstellt wird.
Jenny D