As permissões unix tradicionais significam que, se um usuário puder criar arquivos em um diretório, ele também poderá excluir arquivos nele, mesmo se o arquivo em si for protegido por leitura e não pertencer a eles. Portanto, você não pode proteger html.htm
(seja lá o que for) se estiver em um diretório para o qual eles devem ter acesso de gravação / execução. Talvez as ACLs possam ajudar, como o @vonbrand sugere (mas eu não estou familiarizado com elas, e @vonbrand não está prometendo que funcionará)
-
Não há necessidade de tornar o diretório global-writable ou global-executable, mas é necessário garantir que o daemon do servidor da Web tenha acesso de leitura aos arquivos. (Provavelmente é executado como grupo
www-data
- mas verifique). Portanto, assegure-se de que o proprietário do diretório corresponda ao uid que o usuário obtém ao se conectar, e você pode mantê-lo no modo 750. -
Se você precisar permitir que vários uids gravem no mesmo diretório, será necessário ativar o acesso de gravação em grupo (
g+w
). Nesse caso, eu usaria um grupo diferente dewww-data
e concederia o acesso somente leitura do apache como "outro". Em outras palavras, o modo 775. -
Também fique de olho no seu
umask
, que controla as permissões de novos arquivos criados pelos usuários. Se você tiver contas individuais, use umask022
para corresponder. Se você tiver um diretório de grupo compartilhado, use umsk002
para permitir que os usuários editem os arquivos uns dos outros. (Como eles poderão excluir e substituir arquivos, não há sentido em protegê-los).