
A questão é sobre as melhores práticas, não um problema exato.
Qual é a propriedade e as permissões corretas para arquivos e diretórios estáticos de sites? Vou usar root:<server-group>
com permissões 640 para arquivos e 750 para diretórios. Assim, o servidor pode ler tudo por causa das permissões do grupo, mas o usuário normal não pode modificar os arquivos acidentalmente ou propositalmente sem usar explicitamente o sudo.
Ou talvez haja uma prática melhor que eu não conheça? Minha abordagem parece um pouco complicada.
Responder1
root não é necessário para impedir que os usuários modifiquem arquivos pelos quais as pessoas são responsáveis. O mesmo pode ser feito concedendo propriedade a um usuário sem privilégios, como um usuário de serviço que sincroniza os arquivos.
Idealmente, não é o usuário que executa o servidor web, nem qualquer pessoa específica, apenas algum usuário de automação que faz transferências de arquivos. As pessoas responsáveis pelo conteúdo armazenam os arquivos em algum armazenamento e, quando estiverem prontas para implantar a transferência de arquivos, os copiam para o local. Não há necessidade de pessoas mexerem nos servidores web de produção e não há necessidade de privilégios especiais.
De propriedade do root, deve ser necessário reestruturar ou alterar arquivos, um administrador ou script automatizado pode precisar se tornar root. O que é um privilégio muito alto, capaz de remover medidas de segurança ou quebrar o host.
Claro, faz sentido que os pontos de montagem ou pacotes de software pertençam ao root, portanto é necessário privilégio para alterar o sistema. Se, por exemplo, o conteúdo de um site estiver em /srv/www/example.net/, /srv/ e /srv/www/ poderiam ser de propriedade do root, e os sites como /srv/www/example.net/ propriedade de usuários sem privilégios.