¿Cómo compartir nginx log's sin sudo a otro usuario?

10

Tengo 2 usuarios en mi servidor. Uno con sudo accede a otro sin. ¿Cómo puedo dar acceso a los registros de nginx?

/var/log/nginx/error.log

¿A otro usuario sin sudopermiso para usar cat /var/log/nginx/error.log? ¿Puedo crear algo así como un enlace simbólico para iniciar sesión en su directorio / home / username?

Entonces mi pregunta es: ¿cómo puede un usuario sin sudopermiso verificar los registros de nginx?

Alexander Kim
fuente
sudoacceso a que? No está claro a partir de su pregunta. Sé que algunas personas hacen que 'sudo access' signifique 'acceso raíz', pero eso no es técnicamente exacto. Por favor ellaborate.
Dawud
1
sí, podrías usar sudopara darle los permisos en realidad, dependiendo de cómo quieras configurarlo.
gparent
Podrías usar ACL. por ej setfacl -m 'user:someuser:r' /var/log/nginx/error.log. No estoy seguro de cómo funcionaría eso con logrotate. sudoacceso a cat / tail / etc, el registro es probablemente una mejor opción de todos modos. "
Greg Bowser
@GregBowser En mi humilde opinión, usar ACL sin comprender las ACL es una receta para el problema.
Paul

Respuestas:

16

Por ejemplo, así:

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

De esta forma, cualquiera podrá leer y leer el contenido del directorio / var / log / nginx y leer los archivos * .log.

También debe verificar la configuración de rotación del registro para que los permisos no se vuelvan a cambiar. Para las últimas versiones de Nginx, hasta 1.6.2 inclusive, el archivo /etc/logrotate.d/nginxha utilizado la línea create 0640 www-data admpara establecer permisos al rotar registros. Esto debería cambiarse a algo así create 0644 www-data adm. Cabe señalar que esta solución permite a todos los usuarios del servidor leer todos los registros de Nginx.

Actualización: las configuraciones de logrotate también deben actualizarse para incluir elsu www-data admpara permitir que la utilidad logadm funcione sin quejarse de los permisos de directorio incorrectos.

drogadicto
fuente
3
La configuración predeterminada de Nginx en /etc/logrotate.d/nginxes create 0640 www-data adm. Eso está en 1.6.2, pero no creo que esa línea haya cambiado en bastante tiempo.
Paul
1
Esta respuesta es escrita, por lo que sería universal y genérica, en lugar de ubuntu-nginx-1.6.2-20141110-específica.
drookie
1
nginx config en logrotate d lo estaba reiniciando. Lo arregló cambiándolo.
sdkks
¿No hay otra forma de resolver esto, como cuando un usuario diferente intenta iniciar nginx que utiliza una ruta de registro diferente? Intenté agregarlo a mi nuevo archivo nginx.conf pero cuando ejecuto nginx -c newnginx.conf en este nuevo usuario, todavía intenta acceder al / var / log / nginx ...
Poul K. Sørensen