Come impedire a logrotate di modificare il proprietario dei registri ruotati


9

Ho un proprietario del file di log dall'utente 'apache' che vorrei ruotare con logrotate.

Vorrei farlo eseguendo logrotate come un altro utente, ad esempio "web" usando la strategia copytruncate.

Ciò non riesce con questo errore:

error: error setting owner of ./logfile.log.1: Operation not permitted

Ma solo perché logrotate tenta di cambiare il proprietario del nuovo file con il proprietario del file ruotato, ovvero apache. Ma non mi interessa che i nuovi file abbiano lo stesso proprietario, se logrotate creerebbe copie con 'web' come proprietario andrebbe bene e quindi potrebbe funzionare bene.

Quindi c'è un modo per impedire a logrotate di cambiare il proprietario del file copiato?


1
Lasciando questo per i posteri: usare postscripte chown "$1"probabilmente non è appropriato qui perché non impedirà a logrotate di non riuscire a impostare il proprietario.
David Lord,

Risposte:


7

Uso la createdirettiva nei miei /etc/logrotate.d/file. Esempio:

create 0664 www-data www-data

1

createprobabilmente farà ciò che descrivi nell'ultima frase della tua domanda, ma questa opzione è incompatibile con quella copytruncateche dici anche di voler usare.


0

Ho risolto lo stesso problema con le opzioni postrotate e prerotate:

/opt/bars/web_edu/var/log/nginx*.log {
        su web_edu web_edu
        daily
    compress
        missingok
        rotate 30
        dateext
        notifempty
        create 0644 web_edu web_edu
        sharedscripts
        prerotate
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.log
        endscript
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` || true
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.gz
                chown web_edu:web_edu /opt/bars/web_edu/var/log/nginx*.log
        endscript
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.