Quais devem ser as permissões de logs corretas para o NGINX no CentOS?

2

em / var / log / nginx / Eu tenho acesso e logs de erro. Alguns são erros .log e outros têm .gz

Acho que estraguei as permissões. Alguns arquivos são criados por root / root , outros arquivos são criados usando o usuário configurado em nginx.conf , etc.

  • Qual usuário / grupo deve criar esses arquivos? E porque? Pode ser raiz? Eu pode ver que agora novos arquivos .log estão sendo criados pelo root, mas não certeza se é o caminho certo.
  • E também gostaria de perguntar onde mudar quem é o usuário que cria esses arquivos?
por Pikk 27.05.2015 / 12:25

2 respostas

0

Nos arquivos localizados em / var / log / nginx / as regras mudaram ao longo do tempo (pelo menos na minha experiência). No entanto, sem mais dados, não me sinto à vontade para dar uma sugestão definitiva. Mas vou tentar.

O próprio NGINX é executado como "root" Os processos NGINX são executados como o usuário especificado em /etc/nginx/nginx.conf, que geralmente é "www-data" (aguenta, continua lendo)

Você pode usar este comando para determinar como o seu NGINX está sendo executado:

ps -eo "%U %G %a" | grep nginx

Sua saída deve ser algo como isto:

root     root     nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

www-data www-data nginx: worker process

O que você não disse é por que você está fazendo esta pergunta. Hipoteticamente, vamos apenas dizer que você está executando o OSSEC com uma pilha ELK. E se você estiver no Ubuntu 16.04, então seu segundo problema é quais processos podem ler os arquivos e escrever. Se você estiver usando o logrotate, precisará editar os arquivos logrotate, bem como alterar as permissões na pasta de log.

Passo 1 - no logrotate atualize o arquivo nginx:

nano /etc/logrotate.d/nginx

Nesse arquivo, nas versões recentes do nginx e do ubuntu, descobri que alterar a linha de propriedade da seguinte maneira permitirá que ela funcione. Isso está no arquivo em / etc / logrotate / nginx, que define as permissões do arquivo quando o arquivo é girado.

create 0640 nginx nginx

ou alternativamente:

create 0640 www-data www-data

Embora, na prática, o nginx: nginx tenha trabalhado de forma mais consistente e seja um equilíbrio entre dar as permissões do processo da web nginx aos arquivos de log ao configurá-los para a raiz.

Para continuar, para seus arquivos de log herdados (por exemplo, para serem lidos pelo logstash), talvez seja necessário redefinir as permissões (assumindo os locais de arquivo padrão que eu percebo que a maioria de nós não usa de fato.)

chmod nginx:nginx /var/log/nginx/*

ou (novamente) alternativamente

chown www-data:www-data /var/log/nginx/*

Espero que isso ajude. Eu encontrei dados sobre as permissões adequadas para nginx confundir na melhor das hipóteses quando se trata de log, o que eu atribuo à evolução do seu software SURPREENDENTE. E dou as boas-vindas a outras pessoas que sabem mais para fornecer feedback sobre a minha resposta.

    
por 09.08.2018 / 07:10
0

até onde eu posso entender com as informações fornecidas:

  1. os arquivos de log do seu servidor estão sendo gerenciados pelo daemon logrotate (veja-o como um mecanismo de arquivamento para logs)

  2. isso explica porque você vê alguns arquivos no formato .tar.gz

  3. Aposto que esses arquivos são os que têm como raiz do proprietário (veja aqui para mais informações link ) . Isso depende do usuário especificado para o processo de rotação de log.

  4. os outros arquivos são de propriedade do nginx, que tinha direitos de rw neles

Se for o caso, então está tudo bem

    
por 27.05.2015 / 16:16