Orden de ACL en una DACL
Cuando un proceso de intenta acceder a un objeto protegible, el sistema recorre los entradas de control de acceso (ACE) del lista de control de acceso discrecional del objeto (DACL) hasta que encuentre ACL que permitan o denieguen el acceso solicitado. Los derechos de acceso que una DACL permite a un usuario pueden variar en función del orden de las ACL. Por lo tanto, el sistema operativo Windows XP define un orden preferido para las ACE en la DACL de un objeto protegible. El orden preferido proporciona un marco sencillo que garantiza que una ACE denegada de acceso deniega realmente el acceso. Para obtener más información sobre el algoritmo del sistema para comprobar el acceso, vea Cómo controlan el acceso de DACLs a un objeto.
Para Windows Server 2003 y Windows XP, el orden adecuado de los ACE es complicado por la introducción de acees específicas del objeto y la herencia automática.
En los pasos siguientes se describe el orden preferido:
- Todos los ACL explícitos se colocan en un grupo antes de los ACE heredados.
- Dentro del grupo de ACE explícitas, los ACE denegados de acceso se colocan antes de los ACL permitidos para el acceso.
- Los ACE heredados se colocan en el orden en que se heredan. Los ACL heredados del elemento primario del objeto secundario vienen primero, luego los ACL heredados del abuelo, etc.
- Para cada nivel de ACL heredados, los ACE denegados de acceso se colocan antes de los ACE permitidos para el acceso.
Por supuesto, no todos los tipos ace son necesarios en una ACL.
Funciones como AddAccessAllowedAceEx y AddAccessAllowedObjectAce agregar una ACE al final de una ACL. Es responsabilidad del autor de la llamada asegurarse de que los ACE se agregan en el orden adecuado.