Come condividere i log di nginx senza sudo con un altro utente?


10

Ho 2 utenti sul mio server. Uno con accesso sudo un altro senza. Come posso dare accesso ai registri di nginx

/var/log/nginx/error.log

A un altro utente senza sudopermesso di usare cat /var/log/nginx/error.log? Posso creare qualcosa come un symlink per accedere alla sua directory / home / username?

Quindi la mia domanda è: come può un utente senza sudopermesso controllare i registri nginx?


sudoaccesso a cosa? Non è chiaro dalla tua domanda. So che alcune persone fanno "accesso sudo" per indicare "accesso root", ma questo non è tecnicamente accurato. Per favore, ellaborate.
Dawud,

1
sì, potresti usarlo sudoper concedergli effettivamente le autorizzazioni, a seconda di come desideri configurarlo.
Gparent,

È possibile utilizzare ACL. es setfacl -m 'user:someuser:r' /var/log/nginx/error.log. Non sono sicuro di come funzionerebbe con logrotate. sudol'accesso a cat / tail / etc il registro è probabilmente un'opzione migliore comunque.
Greg Bowser,

@GregBowser IMHO, l'utilizzo di ACL senza comprendere gli ACL è una ricetta per il problema.
Paul,

Risposte:


16

Ad esempio, in questo modo:

chmod 755 /var/log/nginx && chmod 644 /var/log/nginx/*.log && chmod 644 /var/log/nginx/*.gz

in questo modo chiunque sarà in grado di leggere e leggere i contenuti della directory / var / log / nginx e leggere i file * .log.

È inoltre necessario controllare la configurazione della rotazione del registro in modo che le autorizzazioni non vengano nuovamente modificate. Per le ultime versioni di Nginx, fino alla 1.6.2 inclusa, il file /etc/logrotate.d/nginxha utilizzato la linea create 0640 www-data admper impostare le autorizzazioni durante la rotazione dei registri. Questo dovrebbe essere cambiato in qualcosa del genere create 0644 www-data adm. Va notato che questa soluzione consente a tutti gli utenti sul server di leggere tutti i registri Nginx.

Aggiornamento: anche le configurazioni logrotate devono essere aggiornate per includere ilsu www-data admper consentire all'utilità logadm di funzionare senza lamentarsi delle autorizzazioni di directory errate.


3
La configurazione predefinita di Nginx /etc/logrotate.d/nginxè create 0640 www-data adm. È nella 1.6.2, ma non credo che la linea sia cambiata da un po 'di tempo.
Paolo,

1
Questa risposta è scritta quindi sarebbe universale e generica, piuttosto che specifica per ubuntu-nginx-1.6.2-20141110.
drookie,

1
La configurazione di nginx in logrotate d lo stava ripristinando. Risolto il problema cambiandolo.
sdkks,

Non esiste altro modo per risolverlo, ad esempio quando un utente diverso tenta di avviare nginx utilizzando un percorso di registro diverso? Ho provato ad aggiungerlo al mio nuovo file nginx.conf ma quando eseguo nginx -c newnginx.conf su questo nuovo utente, tenta ancora di accedere a / var / log / nginx ...
Poul K. Sørensen il
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.