Partilhar via


Ordem das ACEs em uma DACL

Quando um processo de tenta acessar um objeto protegível, o sistema percorre as entradas de controle de acesso (ACEs) na lista de controle de acesso discricionário (DACL) do objeto até encontrar ACEs que permitem ou negam o acesso solicitado. Os direitos de acesso que uma DACL permite a um usuário podem variar dependendo da ordem das ACEs na DACL. Consequentemente, o sistema operacional Windows XP define uma ordem preferencial para ACEs na DACL de um objeto protegível. A ordem preferencial fornece uma estrutura simples que garante que uma ACE de acesso negado realmente negue o acesso. Para obter mais informações sobre o algoritmo do sistema para verificar o acesso, consulte Como as DACLs controlam o acesso a um objeto.

Para Windows Server 2003 e Windows XP, a ordem adequada das ACEs é complicada pela introdução de ACEs específicas do objeto e herança automática.

As etapas a seguir descrevem a ordem preferida:

  1. Todas as ACEs explícitas são colocadas em um grupo antes de quaisquer ACEs herdadas.
  2. Dentro do grupo de ACEs explícitas, as ACEs de acesso negado são colocadas antes das ACEs de acesso permitido.
  3. As ACEs herdadas são colocadas na ordem em que são herdadas. As ACEs herdadas do pai do objeto filho vêm primeiro, depois as ACEs herdadas do avô e assim por diante na árvore de objetos.
  4. Para cada nível de ACEs herdadas, as ACEs de acesso negado são colocadas antes das ACEs de acesso permitido.

É claro que nem todos os tipos de ACE são necessários em uma ACL.

Funções como AddAccessAllowedAceEx e AddAccessAllowedObjectAce adicionar uma ACE ao final de uma ACL. É responsabilidade do chamador garantir que as ACEs sejam adicionadas na ordem correta.