Na verdade, os arquivos não devem pertencer a www-data
porque isso significa que o Nginx pode modificá-los, o que na maioria dos casos não é o que você deseja (a menos que seja um CMS que precise se auto-atualizar).
Portanto, todos os arquivos devem pertencer a deploy
.
Se for um CMS e você precisar escrever em algumas pastas, então essas poucas pastas (uma?) devem ser de fato de propriedade de www-data
. Isso pode causar um problema se a implantação também fizer a primeira instalação. Ofereça ao usuário um passo manual, ou uma ferramenta especial faça esse trabalho, mas se for uma vez, apenas faça manualmente, vai ser fácil (especialmente porque você tem apenas uma pasta como essa, direito?) O CMS também pode dizer se existe um problema e parar em vez de servir páginas. Dessa forma, você sabe imediatamente e pode evitar problemas ao tentar enviar um arquivo ou alguma ação semelhante.
É claro que os arquivos não são de propriedade de www-data
, mas precisam ser legíveis por www-data
. Portanto, torne legível para os outros ( -rw-r--r--
) ou procure definir o grupo como www-data
( -rw-r-----
). Na maioria dos casos, já vi pessoas não correrem o risco de usar o grupo. Eles simplesmente deixam os outros acessarem os arquivos porque é mais seguro assim.
Claro, isso também significa que o Nginx não teria direitos de acesso ao usuário e ao grupo deploy
.