Use as permissões SetGID no diretório raiz da web, e propagá-los para as crianças.
Quando você aplica o SetGID em um diretório, todos os novos itens nesse diretório serão criados com o mesmo grupo que seu pai possui, independentemente da associação do grupo padrão do usuário.
Para aplicar o SetGID a um objeto do sistema de arquivos, use chmod
com um 2 na frente do código de permissão.
(ex .: 740 = > 2740).
Eu uso o SetGID em muitos dos meus compartilhamentos Samba, para que os arquivos sempre tenham o ownergroup Users
e qualquer membro do grupo possa ler os arquivos (geralmente uso 2750
para que apenas o usuário proprietário possa gravar no arquivo Arquivo).
No seu caso, execute algo assim (substitua XXX pelas suas permissões desejadas):
sudo chown -R root:ftpandwww /var/www
sudo chmod -R 2XXX /var/www
Em seguida, novos arquivos e pastas sairão com propriedade, como ftpuser:ftpandwww
.
Editar:
Dependendo do seu uso, o SetGID é suficiente para resolver o problema, mas se você tiver problemas contínuos em que um ou outro usuário é negado, devido a uma permissão de grupo incorreta (mas a propriedade é correta), sua melhor aposta é definir um UMASK personalizado para o usuário que cria os arquivos .
Se você tiver dificuldade em configurar o UMASK para o usuário (porque é um daemon), verifique este tópico nas opções para definindo UMASK do usuário daemon .
Eu recomendaria a máscara 007
se você quiser que os membros do grupo possam gravar e excluir arquivos, e sem privilégios para não-proprietários.