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
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 .
www-data ao grupo tomcat por motivos de segurança. 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) 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. 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?
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 Tags permissions nginx tomcat linux