As permissões herdadas não são atualizadas automaticamente quando você move pastas

Este artigo fornece uma solução para um problema em que as permissões herdadas não são atualizadas automaticamente quando você move pastas.

Aplica-se a: Windows Server 2012 R2
Número de KB original: 320246

Sintomas

Uma ACL (Lista de Controle de Acesso) pode mostrar permissões marcadas como herdadas do pai, mas o pai em si pode não ter essas permissões configuradas em sua ACL. Esse sintoma pode ocorrer mesmo que a herança ainda esteja habilitada. Qualquer alteração subsequente na ACL da pasta pai faz com que a ACL da criança receba as permissões herdadas. Além disso, qualquer tentativa de alterar a ACL da criança faz com que a herança seja aplicada (a menos que a alteração marque a ACL como sendo protegida contra herança). Esse comportamento pode ser surpreendente se o estado de herança não tiver sido observado antes de você começar a editar a ACL.

Observação

Esse comportamento não pode ser causado pela movimentação de uma pasta ao executar um computador baseado no Windows Vista. A operação de movimentação agora funciona porque a pasta ou o arquivo podem herdar ACL da pasta ou arquivo de destino. A pasta ou arquivo também tem permissões marcadas como herdadas do pai. Essa é uma alteração por design do Windows XP para o Windows Vista e o Windows Server 2008.

Motivo

Esse comportamento pode ser causado pela movimentação de uma pasta. Quando você move uma pasta, a ACL não é alterada e as permissões herdadas não são atualizadas. Observe que mover-se no contexto deste artigo sempre significa mover-se dentro do mesmo volume.

Quando você move um arquivo ou pasta, a ACL também é movida e não é alterada de forma alguma. Mesmo quando a herança está habilitada para essa pasta, as permissões herdadas não são atualizadas automaticamente. A ACL será atualizada na próxima vez que você alterar permissões, e isso força o pai a propagar suas permissões.

Esse comportamento também pode ser causado por:

  • Definir as permissões de uma pasta pai usando CACLS não se propaga para as subpastas. A opção /T não significa propagar os direitos usando herança, mas substituir todas as ACLs.

  • Definindo as permissões de uma pasta pai usando uma API que não propaga automaticamente a herança (como Adssecurity.dll).

  • Restaurando de um backup para um local diferente.

Resolução

Para evitar alterações inesperadas de permissão, defina a ACL do arquivo/pasta como protegida antes de mover quando quiser manter as configurações. Caso contrário, atualize manualmente a ACL do arquivo/pasta movido usando o editor de ACL do explorer. Desabilite e, em seguida, habilite a herança novamente para forçar a ACL a ser atualizada com as permissões herdadas corretas. Você também pode usar um VBScript para automatizar esse processo.

Status

Este é o comportamento padrão. Esse comportamento não ocorre devido à modificação de design no Windows Vista.

Etapas para reproduzir o comportamento

  1. Crie uma pasta test1 com todos:permissões de leitura e usuários:alteração .
  2. Crie uma subpasta test1\sub e habilite a herança do pai (padrão). Esta pasta deve mostrar a todos:ler e usuários:alterar como permissões herdadas.
  3. Crie outra pasta test2 com apenas administradores:permissões de controle completo .
  4. Mova a subpasta para test2.
  5. Exiba as permissões no test2\sub para ver todos: ler e usuários:alterar como permissões herdadas, embora a permissão dos pais seja administradores:controle total.
  6. Adicione outro grupo/usuário (como convidado) à ACL de sub-concessão, por exemplo, Acesso de leitura usando o editor de ACL do explorador. Depois de clicar em Aplicar, todos:leia e usuários:alteração são removidos e somente administradores:controle completo são exibidos como permissões herdadas ao lado daquela que você acabou de adicionar.