Você precisa seguir o princípio do menor privilégio . O servidor (provavelmente www-data
, mas você precisa verificar) precisa ser capaz de ler a maioria dos arquivos (digamos todos) e escrever apenas nos logs. Os desenvolvedores da web podem gravar onde precisam. Defina o bit adesivo nos diretórios para que apenas 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 no Linux). chown
todos os arquivos e diretório para o usuário do servidor web, chmod todos os diretórios para 500 e todos os arquivos para 400 (exceto em bin
onde os executáveis também precisam ser 500).
Conceda permissões de gravação em /opt/tomcat
ao grupo (que seria 570) e defina o bit adesivo para que possam remover apenas os arquivos que possuem (chmod 1570). Conceda a permissão de gravação do servidor para os logs e leia as permissões para os desenvolvedores (0740 para a pasta, 0640 para os arquivos, o bit pegajoso provavelmente não é necessário e nunca conceda a ele para um arquivo, apenas as pastas, pois ele tem um significado diferente (execute com as permissões do proprietário quando o arquivo é executável)).
Em seguida, você precisará conceder permissões de gravação (1570) a webdev
em alguns dos diretórios. Você precisará de algumas tentativas e erros aqui, e isso pode depender 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 (ou seja, 640) e também executar nos diretórios (750).