Linux: como impor permissões específicas em logs recém-criados, que são criados pela rotação de logs?

15

Percebi que os logs de email que estão sendo criados /var/logestão sendo criados e pertencem à raiz (usuário e grupo). Eu escrevi uma verificação do Nagios que monitora o log e, para permitir que o usuário do Nagios o acesse, eu dei otherpermissões de leitura ao grupo, ou seja:

chmod o+r /var/log/maillog

Agora, quando penso nisso, este é apenas um arquivo de log; quando o arquivo de log é preenchido, o mecanismo de rotação do log renomeia esse arquivo e abre um novo, mas o novo maillogarquivo não terá o read writeque eu permiti.

Portanto, minha pergunta é: como posso garantir que o mecanismo de rotação do log crie todos os novos arquivos de e-mail com as permissões corretas para o usuário do Nagios?

desde já, obrigado

Itai Ganot
fonte

Respostas:

21

logrotatetem a createopção:

create mode owner group

Imediatamente após a rotação (antes da execução do script pós-rotação), o arquivo de log é criado (com o mesmo nome do arquivo de log que acabou de ser rotacionado). modeespecifica o modo para o arquivo de log em octal (o mesmo que chmod (2)), owner especifica o nome do usuário que será o proprietário do arquivo de log e group especifica o grupo ao qual o arquivo de log pertencerá. Qualquer um dos atributos do arquivo de log pode ser omitido; nesse caso, esses atributos para o novo arquivo usarão os mesmos valores que o arquivo de log original para os atributos omitidos. Esta opção pode ser desativada usando a opção nocreate.

Mais informações com man logrotate.

Use-o assim:

/var/log/maillog {
....
        create 664 user group
....
}

em /etc/logrotate.confou em um arquivo separado /etc/logrotate.de verifique se nenhum outro arquivo já substitui isso. Como isso é configurado depende do seu sistema operacional (por exemplo, no Ubuntu, isso é tratado na rsyslogconfiguração).

Sven
fonte
Como posso configurar que apenas /var/log/maillogarquivos de log futuros serão criados com as permissões de usuário desejadas sem alterar nenhuma das configurações padrão já aplicadas ao maillog?
Itai Ganot
Veja minha edição e leitura man logrotate(e olhar para /etc/logrotate.confe /etc/logrotate.dpara os lotes de exemplos).
Sven
2
@ItaiGanot Você também deve corrigir sua configuração do syslog para que ele crie o arquivo com a permissão adequada, em vez de executar um chmod inicial.
Jenny D.
@ JennyD, Obrigado, isso significa que devo remover a /var/log/mailloglinha, /etc/logrotate.d/syslogpara que as configurações /etc/logrotate.confocorram?
Itai Ganot
2
@ItaiGanot Não! Isso significa que você deve descobrir qual programa syslog está usando (provavelmente um syslog-ngou outro rsyslog) e alterar sua configuração. Isso é necessário porque, quando seu sistema é reiniciado ou seu programa syslog é reiniciado por algum outro motivo, ele pode recriar o arquivo com a permissão errada.
Jenny D