setfacl falha nos arquivos criados pelo Apache

1

Eu tenho um diretório de propriedade do meu usuário vagrant . O servidor da Web (e o aplicativo da Web) são executados como www-data .

Ambos os usuários precisam criar e modificar diretórios e arquivos nesse diretório, independentemente de quem os criou. Como vagrant posso modificar arquivos criados por www-data , mas não consigo criar novos arquivos em diretórios criados por www-data .

Eu acredito que estou preso porque não posso alterar a máscara aplicada aos diretórios criados por www-data .

vagrant@iadev:/var/www/web$ sudo rm -r core/cache
vagrant@iadev:/var/www/web$ mkdir core/cache

vagrant@iadev:/var/www/web$ sudo setfacl -R -m u:www-data:rwX,u:vagrant:rwX core/cache
vagrant@iadev:/var/www/web$ sudo setfacl -dR -m u:www-data:rwX,u:vagrant:rwX core/cache

vagrant@iadev:/var/www/web$ getfacl core/cache
# file: core/cache
# owner: vagrant
# group: vagrant
user::rwx
user:www-data:rwx
user:vagrant:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

Eu navego no aplicativo da web e preencho o cache

vagrant@iadev:/var/www/web$ getfacl core/cache/locks/
# file: core/cache/locks/
# owner: www-data
# group: www-data
user::rwx
user:www-data:rwx               #effective:r-x
user:vagrant:rwx                #effective:r-x
group::rwx                      #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

vagrant@iadev:/var/www/web$ vi core/cache/locks/test.txt

Quando o usuário vagrant tenta salvar um arquivo em core/cache/locks , ele falha. Eu entendo que #effective:r-x é o problema, mas não consigo descobrir como alterá-lo.

Eu tentei ~ 30 setfacl variações de comando (incluindo -n e m:rwX ): o que eu não entendo?

    
por PeterB 22.04.2016 / 13:00

1 resposta

-1

Eu tive o mesmo problema. Vá e confira o que a ACL core/cache/locks/test.txt tem:

getfacl core/cache/locks/test.txt

Provavelmente, a ACL padrão do diretório não foi aplicada ao arquivo recém-criado (a saída poderia ser algo como):

# file: test.txt
# owner: www-data
# group: www-data
user::rw-
group::r--
other::r--

Reiniciar o Apache me ajudou. Recarregar não.

Por outro lado, tive outra instância do Apache que não precisou ser reiniciada. Vá a figura.

    
por 12.10.2018 / 09:31

Tags