Meu aplicativo requer acesso de leitura /var/log/messages
, que pertence ao usuário e ao grupo root
. Qual é o nível mínimo de exposição necessário /var/log/messages
para que meu aplicativo possa lê-lo?
Atualmente, meu plano é alterar a propriedade do grupo /var/log/messages
para um novo grupo e adicionar root e meu usuário do aplicativo, mas isso também daria privilégios de gravação ao aplicativo /var/log/messages
.
SO: Centos 5.5
linux
centos
permissions
file-permissions
gAMBOOKa
fonte
fonte
Apenas para expandir um pouco as respostas acima, aqui está um caso de uso no mundo real. Eu executo o aplicativo de análise de log corporativo Splunk em uma caixa Redhat. Ele é executado no usuário e no grupo splunk. Isso impede que o splunk acesse os logs em / var / log, pois eles são acessíveis apenas pelo root (ou por um administrador do sudo)
Para permitir o acesso somente leitura para splunk, usei algumas ACLs e modifiquei o logrotate para persistir.
Você pode definir manualmente a ACL com
Isso não persistirá, pois o logrotate não reaplicará a configuração da ACL; portanto, para uma solução mais permanente, adicionei uma regra ao logrotate para redefinir a ACL. Eu adicionei o arquivo ..
com
Verifique o status da ACL de um arquivo com
Para obter mais informações sobre ACLs, consulte https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/
fonte
/etc/logrotate.d/Splunk_ACLs
que você postou lá? Você realmente não precisa especificar nenhum caminho para o logrotate processar o bit pós-rotação?Seu plano é aceitável e no esquema de permissões Unix "tradicional" é o melhor caminho a percorrer.
Outra opção é fazer com que o syslog desvie as mensagens de interesse para outro arquivo (o que evita dar ao usuário do aplicativo acesso a qualquer coisa sensível que possa estar presente
/var/log/messages
).Se você não deseja vincular-se ao esquema de permissões tradicional de Usuário / Grupo / Outro, também pode usar ACLs POSIX (outros, possivelmente melhores instruções / informações disponíveis no Google) para fornecer ao usuário do aplicativo acesso somente leitura a
/var/log/messages
- isso é um pouco mais refinado e não corre o risco de colocar acidentalmente alguém no grupo do aplicativo e dar acesso a coisas que eles não deveriam poder ver.fonte
Yip, eu costumava
setfacl
fazer isso para dar acesso aomail.log
arquivo para um cliente, você também não precisará inserir um comando nologrotate.conf
arquivo para redefinir a ACL após a rotação dos logs, por exemplo:Note: Acabei de configurar isso e ainda não testei, mas, embora ele publique aqui, não consigo ver por que não funcionaria, alguém me corrija se eu estiver errado.
fonte
Você pode usar a ACL para isso. Ele permite definir regras de acesso adicionais específicas para usuários e arquivos específicos.
fonte
Depois de configurar sua ACL, como as outras pessoas disseram, em vez de colocar todas as suas regras de ACL na configuração pós-rotação, você pode trocar o logrotate para usar copytruncate em vez de criar um novo arquivo de log cada vez
fonte