Você precisa seguir o princípio do menor privilégio . O servidor (provavelmente www-data
, mas você precisará verificar) precisa poder ler a maioria dos arquivos (digamos todos) e gravar apenas nos logs. Os desenvolvedores da Web podem escrever onde precisam. Defina a parte adesiva nos diretórios para que somente o proprietário de um arquivo possa excluí-lo.
Na prática, você precisa criar um grupo (por exemplo webdev
) e adicionar todos os desenvolvedores e o servidor a ele ( usermod -aG webdev <user>
ou usermod -A webdev <user>
dependendo do seu sabor Linux). chown
todos os arquivos e diretórios para o usuário do servidor da web, chmod todos os diretórios para 500 e todos os arquivos para 400 (exceto bin
onde os executáveis também precisam ser 500).
Conceda permissões de gravação /opt/tomcat
ao grupo (que seria 570) e defina o bit adesivo para que eles possam remover apenas os arquivos que possuem (chmod 1570). Conceda ao servidor permissão de gravação nos logs e permissões de leitura para os desenvolvedores (0740 para a pasta, 0640 para os arquivos, o bit adesivo provavelmente não é necessário e nunca conceda a um arquivo, apenas as pastas, pois possui um significado diferente (execute com as permissões do proprietário quando o arquivo for executável)).
Você precisará conceder permissões de gravação (1570) para webdev
alguns dos diretórios. Você precisará de algumas tentativas e erros aqui e pode ser dependente do aplicativo. Essas pastas devem ser 1570, enquanto outras podem ser 0500).
Os desenvolvedores precisarão conceder acesso de leitura em seus arquivos ao grupo para que o servidor possa lê-los (que é 640) e também execute nos diretórios (que são 750).