Como compartilhar logs do nginx sem sudo para outro usuário?


10

Eu tenho 2 usuários no meu servidor. Um com sudo acessa outro sem. Como posso dar acesso aos logs do nginx

/var/log/nginx/error.log

Para outro usuário sem sudopermissão para usar cat /var/log/nginx/error.log? Posso criar algo como um link simbólico para fazer login no diretório / home / username?

Portanto, minha pergunta é: como um usuário sem sudopermissão pode verificar os logs do nginx?


sudoacesso a quê? Não está claro em sua pergunta. Eu sei que algumas pessoas fazem 'acesso sudo' como 'acesso root', mas isso não é tecnicamente preciso. Por favor, elabore.
Davud

1
Sim, você poderia usar sudopara conceder as permissões, dependendo de como você deseja configurá-lo.
gparent

Você poderia usar ACLs. por exemplo setfacl -m 'user:someuser:r' /var/log/nginx/error.log. Não tenho certeza de como isso funcionaria com o logrotate. sudoacesso a cat / tail / etc o log provavelmente é uma opção melhor de qualquer maneira. '
Greg Bowser

@GregBowser IMHO, usar ACLs sem entender ACLs é uma receita para o problema.
Paul

Respostas:


16

Por exemplo, assim:

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

dessa forma, qualquer pessoa poderá codificar e ler o conteúdo do diretório / var / log / nginx e ler os arquivos * .log.

Você também deve verificar a configuração de rotação do log para que as permissões não sejam alteradas novamente. Nas últimas versões do Nginx, até a versão 1.6.2, o arquivo /etc/logrotate.d/nginxusou a linha create 0640 www-data admpara definir permissões ao girar logs. Isso deve ser alterado para algo como create 0644 www-data adm. Note-se que esta solução permite que todos os usuários no servidor leiam todos os logs do Nginx.

Atualização: as configurações do logrotate também devem ser atualizadas para incluir osu www-data admpara permitir que o utilitário logadm funcione sem reclamar das permissões de diretório incorretas.


3
A configuração padrão do Nginx em /etc/logrotate.d/nginxé create 0640 www-data adm. Isso está na versão 1.6.2, mas não acho que essa linha tenha mudado há algum tempo.
Paul

1
Esta resposta é escrita, por isso seria universal e genérica, ao invés de específica do ubuntu-nginx-1.6.2-20141110.
drookie

1
A configuração do nginx no logrotate d foi redefinida. Corrigido, alterando-o.
Sdkks

Não há outra maneira de resolver isso, como quando um usuário diferente tenta iniciar o nginx e usa um caminho de log diferente? Eu tentei adicionar-lo ao meu novo arquivo nginx.conf mas quando executando nginx -c newnginx.conf sobre esse novo usuário, ele ainda tenta acessar o / var / log / nginx ...
Poul K. Sørensen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.