Se o seu servidor web puder gravar em todos os seus arquivos, o site não será necessariamente seguro; qualquer exploit (conhecido ou desconhecido) contra o nginx, PHP (ou Rails ou qualquer outra pilha, etc.) ou os aplicativos da web que você pode estar usando significa que um invasor pode gravar em tudo.
O método mais seguro é ter todos os arquivos pertencentes a um usuário diferente do usuário no qual o servidor da web (e PHP, etc.) seja executado, e apenas tornar as coisas graváveis que devem ser graváveis para o aplicativo funcionar, como diretórios de upload de usuários.
Por exemplo, no meu servidor web, nginx é executado como usuário nginx, php-fpm também é executado como usuário nginx e todos os arquivos são de propriedade de minha própria conta de usuário, exceto os diretórios de upload, que são de propriedade do nginx. o recurso de upload de arquivos do aplicativo da Web funciona.
Sempre que eu uso SFTP, eu faço login com minha própria conta de usuário, e eu su
to root para alterar a propriedade de tais diretórios de upload (como o WordPress /wp-content/uploads
directory). A maioria dos aplicativos da Web imprimirá um aviso durante a instalação quando um arquivo ou diretório precisar ser gravável.