Devo implantar com o mesmo usuário que administra o site?

Devo implantar com o mesmo usuário que administra o site?

Eu tenho um site servido pelo Nginx e recentemente configurei compilações e implantações do Travis para ele.

Nginx está executando o site como www-datausuário. Criei um usuário deploypara que o Travis possa logar no servidor via SSH e implantar o site. Os arquivos implantados estão sendo armazenados com deployo usuário como proprietário, que é diferente do usuário que está executando o site ( www-data).

Tenho medo de ter problemas de permissão ao executar o site com esta configuração. Devo usar o mesmo usuário www-data/ deploypara executar e implantar o site? Usando essa abordagem, terei problemas ao permitir que o usuário que executa o site faça login remotamente por meio de SSH?

Por favor, me esclareça sobre isso.

Responder1

Na verdade, os arquivos não devem pertencer a www-dataporque 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 ser atualizado automaticamente).

Portanto, todos os arquivos devem pertencer a deploy.

Se for um CMS e você precisar escrever em algumas pastas, então essas poucas (uma?) pastas devem realmente pertencer a www-data. Isso pode causar um problema se a implantação também fizer a primeira instalação. Ofereça ao usuário a execução de uma etapa manual ou peça a uma ferramenta especial para fazer esse trabalho, mas se for algo único, basta fazê-lo manualmente, será bastante fácil (especialmente porque você só tem uma pasta como essa, certo?) O CMS também pode informar se existe esse problema e parar em vez de exibir páginas. Dessa forma, você sabe imediatamente e pode evitar problemas ao tentar fazer upload de um arquivo ou alguma ação semelhante.

É claro que os arquivos não pertencem a, www-datamas precisam ser legíveis por www-data. Portanto, torne-o legível para outras pessoas ( -rw-r--r--) ou considere definir o grupo como www-data( -rw-r-----). Na maioria dos casos, já vi pessoas nem mesmo correrem o risco de usar o grupo. Eles apenas permitem que outras pessoas acessem os arquivos porque é mais seguro assim.

Claro, isso também significa que o Nginx não teria direitos de acesso ao deployusuário e ao grupo.

informação relacionada