Eu finalmente consegui descobrir uma correção automatizada para isso. Quando você chamar o cmdlet Set-Acl
do PowerShell, ele reordenará as ACLs corretamente:
$path = C:\Path\To\Item\With\Borked\ACL
$acl = Get-Acl $path
Set-Acl $path $acl
Claro, pode ser um pai do diretório que está bagunçado, então você deve fazer um pouco para encontrar o culpado. Use icacls C:\Path\To\Item\With\Suspect\CL /verify
para descobrir se algo precisa de reparo.
Em nosso ambiente, o Cygwin é o provável culpado: quando cria diretórios, ele gosta de dar permissões no estilo POSIX, em vez de depender do Windows para gerenciar a segurança do sistema de arquivos.