Volgorde van ACL's in een DACL
Wanneer een proces probeert toegang te krijgen tot een beveiligbaar object, doorloopt het systeem de vermeldingen voor toegangsbeheer (ACL's) in de discretionaire toegangsbeheerlijst van het object (DACL) totdat ACL's worden gevonden die de aangevraagde toegang toestaan of weigeren. De toegangsrechten die een DACL toestaat dat een gebruiker kan variëren, afhankelijk van de volgorde van ACL's in de DACL. Daarom definieert het Windows XP-besturingssysteem een voorkeursvolgorde voor ACL's in de DACL van een beveiligbaar object. De voorkeursvolgorde biedt een eenvoudig framework dat ervoor zorgt dat een toegang geweigerde ACE daadwerkelijk toegang weigert. Zie voor meer informatie over het algoritme van het systeem voor het controleren van de toegang Hoe DACL's de toegang tot een object beheren.
Voor Windows Server 2003 en Windows XP is de juiste volgorde van ACL's gecompliceerd door de introductie van objectspecifieke ACL's en automatische overname.
In de volgende stappen wordt de voorkeursvolgorde beschreven:
- Alle expliciete ACL's worden in een groep geplaatst vóór overgenomen ACL's.
- Binnen de groep expliciete ACL's worden toegang geweigerde ACL's geplaatst voordat toegangsbeheerlijsten worden toegestaan.
- Overgenomen ACL's worden geplaatst in de volgorde waarin ze worden overgenomen. ACL's die zijn overgenomen van het bovenliggende object komen eerst voor, daarna zijn ACL's overgenomen van de grootouder, enzovoort van de boom van objecten.
- Voor elk niveau van overgenomen ACL's worden toegang geweigerde ACL's geplaatst voordat toegangsbeheerlijsten worden toegestaan.
Natuurlijk zijn niet alle ACE-typen vereist in een ACL.
Functies zoals AddAccessAllowedAceEx en AddAccessAllowedObjectAce een ACE toevoegen aan het einde van een ACL. Het is de verantwoordelijkheid van de beller om ervoor te zorgen dat de ACL's in de juiste volgorde worden toegevoegd.