Ich habe einen Logfile-Besitzer vom 'Apache'-Benutzer, den ich mit Logrotate drehen möchte.
Ich möchte dies tun, indem ich logrotate als einen anderen Benutzer ausführe, z. B. "web" mit der Strategie "copytruncate".
Das schlägt mit diesem Fehler fehl:
error: error setting owner of ./logfile.log.1: Operation not permitted
Aber nur, weil logrotate versucht, den Besitzer der neuen Datei in den Besitzer der gedrehten Datei zu ändern, dh Apache. Aber es ist mir egal, ob die neuen Dateien denselben Eigentümer haben, wenn logrotate Kopien mit 'web' als Eigentümer erstellen würde, wäre das in Ordnung und dann könnte es gut funktionieren.
Gibt es also eine Möglichkeit, zu verhindern, dass logrotate den Eigentümer der kopierten Datei ändert?
postscript
undchown "$1"
ist hier wahrscheinlich nicht geeignet, da dadurch nicht verhindert wird, dass logrotate den Eigentümer nicht festlegt.Antworten:
Ich benutze die
create
Direktive in meinen/etc/logrotate.d/
Dateien. Beispiel:quelle
create
wird wahrscheinlich das tun, was Sie im letzten Satz Ihrer Frage beschrieben haben, aber diese Option ist nicht kompatibel mitcopytruncate
der Option , die Sie auch verwenden möchten.quelle
Ich habe das gleiche Problem mit Optionen für Postrotate und Prerotate gelöst:
quelle