OK. Posso confirmar que um usuário pode excluir um arquivo (ou remover um diretório vazio) sem ter acesso de gravação a esse arquivo / diretório se tiver acesso Excluir filho ao diretório pai. Se eu estava ciente disso antes, eu tinha me esquecido disso, mas é um comportamento documentado, por exemplo, veja KB101651 .
Existem (pelo menos) três maneiras de resolver seu problema:
-
Conceda aos usuários Modificar o acesso em vez do acesso Controle Total ao diretório pai. As únicas diferenças entre Controle Total e Modificar são o direito Excluir Filho (permitindo que o usuário exclua objetos filho) e o direito Gravar DAC (permitindo que o usuário altere as permissões no objeto, mesmo que não sejam o proprietário).
-
Defina as permissões no compartilhamento para Modificar em vez de Completo. Isso deve ter o mesmo efeito, mas afetará apenas os usuários da rede, não os usuários interativos. Um efeito colateral é que os usuários não podem alterar as permissões, mesmo em seus próprios arquivos.
-
Defina o sinalizador somente leitura no arquivo / diretório filho. A documentação não está clara neste ponto, mas meu teste (Windows 7) indica que Excluir filho não permite excluir arquivos ou remover diretórios com o conjunto de sinalizadores somente leitura. Também não permite redefinir o sinalizador somente leitura. Observe que a GUI do Explorer implica que o sinalizador somente leitura não tem efeito nos diretórios; na verdade, impede que o diretório seja removido. (Ele não impede que novos arquivos sejam gravados no diretório.) Adendo: o sinalizador somente leitura não impede que um diretório seja movido.
Outras notas:
-
Você poderia negar explicitamente o direito Excluir filho ao diretório pai, mas se o usuário tiver Controle total para o diretório pai, ele poderá remover a entrada de negação.
-
Ter o direito Excluir filho no diretório pai não permite que os usuários excluam arquivos do diretório filho ou remova o diretório-filho, a menos que esteja vazio. Adendo: permite que os usuários movam o diretório filho.