Permissões do Linux quando os arquivos são gravados / lidos por diferentes processos

0

Eu tenho um aplicativo da Web implementado via Tomcat que permite o upload de arquivos em um diretório files . Esses arquivos são carregados pelo Tomcat com o proprietário tomcat:tomcat e as permissões 640 . Eu preciso manter o grupo tomcat porque outros usuários precisam dele para fins de administração.

No lado do download, eu tenho um Nginx que fornece os arquivos para os usuários.

O problema é que o Nginx não pode acessar os arquivos enviados, porque ele usa um usuário www-data:www-data .

  • Não é possível adicionar www-data ao grupo tomcat por motivos de segurança.
  • Não consigo substituir tomee group por www-data , porque preciso do tomee group e não posso deixar de criar TODOS os arquivos sob o www-data group (f.ex. tomee criaria logs sob tomee:www-data , o que é indesejado - apenas os envios em qualquer caso poderia ter isso)
  • Não posso permitir que others tenha permissões nos arquivos, por motivos de segurança. De qualquer forma, não posso alterar a máscara padrão do 640 do Tomcat porque (design ruim do Tomcat?) Isso afetaria TODOS os arquivos que o Tomcat cria.
  • Eu poderia usar chmod g+s , mas isso não parece afetar os arquivos de forma recursiva (o Tomcat também cria diretórios nos quais envia o arquivo)

Como posso resolver este problema?

    
por user1156544 14.12.2017 / 15:59

1 resposta

0

Acho que resolvi, mas preciso fazer mais testes antes de aceitar a solução.

  • sudo apt install acl (baseado no Ubuntu)
  • sudo chown tomcat:www-data files
  • sudo chmod g+s files
  • sudo setfacl -Rm d:g:www-data:r files
por 14.12.2017 / 17:17