Permissões de arquivo de log no Linux

5

Eu estou tentando escrever um script simples que monitora /var/log/messages file. O arquivo por padrão não tem permissão de leitura para usuários, quando eu permito acesso de leitura a este arquivo meu script funciona perfeitamente, mas o problema é que o arquivo é reescrito toda vez que eu reinicio o sistema e todas as minhas alterações são perdidas. Existe uma maneira de alterar suas permissões padrão?

Obrigado.

    
por Maksim Vi. 17.10.2009 / 09:58

3 respostas

12

Existem configurações de gerenciamento de permissões que não exigem o uso de sudo - você pode conceder ao usuário que executa o script acesso ao grupo que possui /var/log/messages ( adm , no meu laptop aqui). Como alternativa, use NOPASSWD na entrada sudoers do script, para que você não precise armazenar uma senha no script.

Se você está realmente pronto para deixar o mundo ver o que está em /var/log/messages (e eu recomendaria strongmente contra ele - realmente pode haver coisas privadas lá dentro), então o que está definindo suas permissões de volta ao padrão é provavelmente logrotate , então confira sua configuração do logrotate e encontre a sub-rotina que está fazendo sua rotação /var/log/messages e altere-a.

    
por 17.10.2009 / 10:57
1

A solução usual é executar o script do monitor com privilégios suficientes para poder ler o arquivo.

Isso porque a permissão /var/log/messages é cuidadosamente escolhida para ocultar qualquer informação sensível que acidentalmente termine nesse arquivo de log.

    
por 17.10.2009 / 10:15
1

Se você usar o sudo para conceder acesso, precisará ter cuidado para limitar o escopo de acesso corretamente. Eu recomendaria usar algo assim em seu arquivo sudoers:

scriptuser  ALL = NOPASSWD: /bin/cat /var/log/messages

Isso permitirá que o 'scriptuser' execute o comando exato apresentado sem digitar uma senha.

    
por 17.10.2009 / 14:38