Grave erros porque dois usuários diferentes podem criar um arquivo de log

1

Sou razoavelmente inexperiente com o Linux / Ubuntu e luto com o que eu pensava ser uma questão de permissões bastante simples. Eu estou correndo em problemas onde os arquivos de log estão sendo criados como dois usuários diferentes, o que pode causar problemas de escrita, dependendo de qual usuário escreveu para ele em primeiro lugar, mesmo que eles estejam no mesmo grupo.

Usuários: O usuário servidor pertence ao grupo www-data O usuário www-data também pertence ao grupo www-data

Quando o arquivo de log é criado, ele tem permissões de 644 (-rw-r - r--). Então o usuário pode escrever para ele, mas o grupo não pode.

Então, o que acontece é que servidor escreve primeiro, mas www-data não pode, ou vice-versa.

No Ubuntu, existe alguma maneira de:

  • Conceder a dois usuários acesso completo de gravação a uma pasta substituindo as permissões de arquivo?
  • Alterar as permissões quando arquivos padrão são criados em uma pasta?

Detalhes:

  • Ubuntu 16.04.2 LTS
  • É um aplicativo PHP / Laravel em execução no Apache. Mas também existem ferramentas de linha de comando, tarefas agendadas, etc., que acabam sendo gravadas no arquivo de log quando invocam a infraestrutura do Laravel. Então, parece ser uma chance aleatória em que alguém escreve primeiro no arquivo.
  • Eu vi este post ( Como posso definir as permissões padrão para arquivos enviados pela apache2? ) sobre o uso de umask, mas espero que essa não seja a única solução. Eu não quero mudar como tudo é criado no Apache apenas para os arquivos de log. Parece usar um martelo para matar uma formiga.
por Randar Puust 10.03.2017 / 06:09

2 respostas

0

Uma solução possível é:

  1. Criar novo grupo
  2. Adicione usuários ao grupo e torne-o primário para esses usuários
  3. Altere umask para 002 para que o arquivo criado tenha permissões como 664
  4. Faça a permissão da pasta como 775 ou 770
por 10.03.2017 / 06:19
0

Então meu problema foi corrigido ... embora eu não tenha certeza do que o consertou. Os arquivos agora estão sendo criados com o usuário e o grupo com permissão de gravação que soa como umask. Eu acho que a solução foi definir as ACLs no arquivo usando:

sudo setfacl -d -m group:www-data:rw /var/www/application/storage/logs
    
por 13.03.2017 / 22:42