Dado que o usuário www-data
não é membro do grupo myuser
, ele exige que as permissões +x
passem pelo diretório /var/www/html
. As permissões existentes na pergunta são "750". Para mudar isso:
chmod o+x /var/www/html
Aviso: já perguntou isso no StackOverflow mas é meio urgente e eu não estou recebendo nenhuma resposta e eu acho que ServerFault pode ser o melhor lugar para postar isso de qualquer maneira. Se eu receber uma resposta aqui, vou deletar a outra.
Estou seguindo o guia aqui (admitidamente é um pouco datado) para implantar meu primeiro projeto do Symfony 4 para produção. Tudo estava indo bem até que eu cheguei às permissões de arquivo. Eu fiz as etapas especificamente na Etapa 4 do link:
sudo chown -R myuser:myuser /var/www/html
sudo chmod -R 750 /var/www/html
sudo setfacl -R -m u:www-data:rX /var/www/html/project
sudo setfacl -R -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
sudo setfacl -dR -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
Isso me dá
getfacl /var/www/html/project
# file: var/www/html/project/
# owner: myuser
# group: myuser
user::rwx
user:www-data:r-x
group::r-x
mask::r-x
other::---
e
getfacl /var/www/html/project/var/cache
# file: var/www/html/project/var/cache
# owner: myuser
# group: myuser
user::rwx
user:www-data:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:www-data:rwx
default:group::r-x
default:mask::rwx
default:other::---
No entanto, quando vou executar o aplicativo da web, recebo uma página em branco e o log de erros mostra
[crit] 3116#3116: *12 stat() "/var/www/html/project/public/" failed (13: Permission denied)
Então parece que o setfacl não está funcionando? O que eu estou fazendo errado aqui? Existe um guia melhor para permissões?
EDITAR: Acabei de ler aqui isso:
To use ACL, it's necessary to use filesystems which can use ACL function like ext2/ext3/ext4 or xfs and also necessary to enable ACL option on those filesystems.
Minha unidade é criptografada (feita durante a instalação). Poderia ser por isso que isso não está funcionando? Se este for o caso, que alternativas eu teria?