Não tenho certeza do que você está falando aqui. Não há permissões de compartilhamento chamadas Modify
no Windows Server 2003 e no Windows Server 2008 R2:
AinteraçãoentrepermissõesdecompartilhamentoepermissõesdeNTFSpodesercomplexa.Aspermissõesdecompartilhamentotêmumavisãomuitomaissimplesdomundo.SuagranularidadeparapermissõesdecompartilhamentoestálimitadaaFullControl
,Change
eRead
.Nãoháumconceitodeproprietáriodecompartilhamentoenenhuma"herança de permissões de compartilhamento". Para complicar ainda mais, você pode ter a mesma pasta compartilhada mais de uma vez, com cada compartilhamento tendo permissões independentes. Se você tiver compartilhamentos "aninhados", obterá as permissões Compartilhar de qualquer compartilhamento que você tenha mapeado.
As permissões NTFS são sempre aplicadas, mesmo que o usuário ou o processo seja remoto. O Windows levará em consideração as permissões de compartilhamento e permissões de NTFS e "calculará" suas permissões efetivas.
O processo geral é assim:
- Reúna todas as permissões de compartilhamento e as combine. Um
Deny
substituirá qualquerAllowed
. - Reúna todas as permissões NTFS que o usuário possui para o arquivo. Verifique se você considera as permissões NTFS explícitas e herdadas. Assim como com as permissões de compartilhamento, um
Deny
substituirá as permissõesAllowed
. Lembre-se de considerar que as permissões NTFS que não são herdadas ou explicitamente atribuídas são implicitamente definidas comoDeny
. - Combine as permissões Compartilhar e NTFS. Onde há uma sobreposição, o mais restritivo do conjunto é a permissão efetiva.
Você provavelmente está vendo uma interpretação mais restritiva de Modify
(ou Change
?) no Windows Server 2008 R2, que é calculada com base nas permissões NTFS menos restritivas. Eu gosto de @Helge Klein não conseguiu encontrar nenhuma documentação sobre o que constitui permissões atômicas reais da "meta-permissão" Modify
Share.
Como você descobriu, esse processo é complexo e propenso a erros. Torne sua vida simples e use permissões NTFS exclusivamente para seu controle de acesso. Defina suas permissões de compartilhamento para que elas sejam abertas ( DOMAIN\Authenticated Users
- Full Control
) e defina as permissões NTFS para fornecer o controle de acesso desejado - algo como o seguinte é típico:
-
DOMAIN\Authenticated Users
-Read
-
DOMAIN\Accounting-Users
-Modify
-
DOMAIN\IT-Admins
-Full Control
O token de acesso do usuário ou processo acaba contém as ACLs mais restritivas e não apenas uma união de então. Essa é a única maneira sensata de fazer isso. Caso contrário, você precisará manter e solucionar problemas de suas ACLs em dois locais separados, com dois conjuntos separados de ferramentas. Assim está o caminho da loucura.