Devo implantar com o mesmo usuário que está executando o site?

4

Eu tenho um site sendo atendido pelo Nginx e recentemente configurei criações e implantações de travis para ele.

O Nginx está executando o site como www-data user. Eu criei um usuário deploy para que o Travis possa fazer o login no servidor através do SSH e implantar o site. Os arquivos implantados estão sendo armazenados com deploy user como proprietário, o que é diferente do usuário que está executando o site ( www-data ).

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

Por favor, me esclareça sobre isso.

    
por Hugo Durães 28.10.2016 / 19:00

1 resposta

4

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 .

    
por 28.10.2016 / 19:07