Comment partager les journaux nginx sans sudo avec un autre utilisateur?

10

J'ai 2 utilisateurs sur mon serveur. Un avec sudo accède à un autre sans. Comment puis-je donner accès aux journaux Nginx

/var/log/nginx/error.log

À un autre utilisateur sans sudoautorisation d'utilisation cat /var/log/nginx/error.log? Puis-je créer quelque chose comme un lien symbolique pour se connecter dans son répertoire / home / username?

Donc, ma question est - comment un utilisateur sans sudoautorisation peut-il vérifier les journaux nginx?

Alexander Kim
la source
sudoaccès à quoi? Cela ne ressort pas clairement de votre question. Je sais que certaines personnes font «accès sudo» pour signifier «accès root», mais ce n'est pas techniquement exact. Veuillez développer.
dawud
1
oui, vous pouvez utiliser sudopour lui donner les autorisations, en fonction de la façon dont vous souhaitez le configurer.
gparent
Vous pouvez utiliser des ACL. par exemple setfacl -m 'user:someuser:r' /var/log/nginx/error.log. Je ne sais pas comment cela fonctionnerait avec logrotate. sudol'accès à cat / tail / etc le journal est probablement une meilleure option de toute façon. »
Greg Bowser
@GregBowser IMHO, utiliser des ACL sans comprendre les ACL est une recette pour un problème.
Paul

Réponses:

16

Par exemple, comme ceci:

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

de cette façon, n'importe qui pourra cwd et lire le contenu du répertoire / var / log / nginx et lire les fichiers * .log.

Vous devez également vérifier la configuration de rotation des journaux afin que les autorisations ne soient plus modifiées. Pour les dernières versions de Nginx, jusqu'à 1.6.2 inclus, le fichier /etc/logrotate.d/nginxa utilisé la ligne create 0640 www-data admpour définir les autorisations lors de la rotation des journaux. Cela devrait être changé en quelque chose comme create 0644 www-data adm. Il convient de noter que cette solution permet à tous les utilisateurs du serveur de lire tous les journaux Nginx.

Mise à jour: les configurations logrotate doivent également être mises à jour pour inclure lesu www-data admafin de permettre à l'utilitaire logadm de fonctionner sans se plaindre d'autorisations de répertoire incorrectes.

drookie
la source
3
La configuration par défaut de Nginx /etc/logrotate.d/nginxest create 0640 www-data adm. C'est en 1.6.2, mais je ne pense pas que cette ligne ait changé depuis un certain temps.
Paul
1
Cette réponse est écrite donc elle serait universelle et générique, plutôt que spécifique à ubuntu-nginx-1.6.2-20141110.
drookie
1
la configuration de nginx dans logrotate d le réinitialisait. Corrigé en le changeant.
sdkks
N'y a-t-il pas d'autre moyen de résoudre ce problème, par exemple lorsqu'un autre utilisateur essaie de démarrer nginx qu'il utilise un chemin de journal différent? J'ai essayé de l'ajouter à mon nouveau fichier nginx.conf mais lors de l'exécution de nginx -c newnginx.conf sur ce nouvel utilisateur, il essaie toujours d'accéder au / var / log / nginx ...
Poul K. Sørensen