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