Tentando usar “rotatelogs” no Apache 2.2 como não raiz

2

Temos o Apache configurado para ser executado como usuário www em uma caixa RedHat, mas seus registros são gravados com propriedade root, já que o processo é executado como root. Parece que o melhor curso de corrida seria 1) executar rotatelogs como um usuário não-root e 2) colocar os logs em um lugar separado para o usuário com permissões apropriadas.

Isso pode ser feito? Eu não vejo um método aqui:

link

    
por jouell 04.12.2015 / 23:48

2 respostas

2

Não há necessidade de fazer nada em relação à propriedade de arquivos. A Red Hat envia seus sistemas com padrões sensatos. Milhões de servidores da web são executados todos os dias com seus registros httpd de propriedade do root. A melhor prática é sair bem sozinha neste caso.

Por padrão, os logs do httpd em um sistema RH são rotacionados usando logrotate. Isso é executado diariamente como usuário root, portanto, não há problema com a propriedade. Você pode ajustar a maneira como os logs são rotacionados editando a configuração do logrotate (/etc/logrotate.conf, /etc/logrotate.d/httpd).

Se você estiver usando logs canalizados, como seu link sugere, então você precisará configurar seu próprio cron job para ser executado como root.

Isso é tudo normal.

    
por 05.12.2015 / 12:18
1

A maneira exata de invocá-lo dependerá da configuração local (por exemplo, apache está desativado por padrão no RHEL 6), mas você pode usar sudo , runuser etc., assim:

ErrorLog "|sudo -u apache rotatelogs -f /var/log/httpd/errors.%Y-%m-%d.log 86400"

    
por 09.11.2017 / 16:21