DACL의 ACE 순서

프로세스가 보안 개체에 액세스하려고 하면 시스템은 요청된 액세스를 허용하거나 거부하는 ACE를 찾을 때까지 개체의 DACL(임의 액세스 제어 목록)에서 ACE(액세스 제어 항목)를 단계별 실행합니다. DACL에서 사용자가 허용하는 액세스 권한은 DACL의 ACE 순서에 따라 달라질 수 있습니다. 따라서 Windows XP 운영 체제는 보안 개체의 DACL에서 ACE에 대한 기본 순서를 정의합니다. 기본 순서는 액세스 거부 ACE가 실제로 액세스를 거부하도록 하는 간단한 프레임워크를 제공합니다. 액세스를 확인하기 위한 시스템 알고리즘에 대한 자세한 내용은 DACLs가 개체에 대한 액세스를 제어하는 방법을 참조하세요.

Windows Server 2003 및 Windows XP의 경우 개체별 ACE 및 자동 상속의 도입으로 인해 적절한 ACE 순서가 복잡해집니다.

다음 단계에서는 기본 순서를 설명합니다.

  1. 모든 명시적 ACE는 상속된 ACE 앞에 그룹에 배치됩니다.
  2. 명시적 ACE 그룹 내에서 액세스 거부 ACE는 액세스 허용 ACE 앞에 배치됩니다.
  3. 상속된 ACE는 상속되는 순서대로 배치됩니다. 자식 개체의 부모로부터 상속된 ACE가 먼저 오고, 그 다음에는 조부모로부터 상속된 ACE가 개체 트리 위로 올라옵니다.
  4. 상속된 ACE의 각 수준에 대해 액세스 거부 ACE는 액세스 허용 ACE 앞에 배치됩니다.

물론 모든 ACE 형식이 ACL에 필요한 것은 아닙니다.

AddAccessAllowedAceExAddAccessAllowedObjectAce와 같은 함수는 ACL 끝에 ACE를 추가합니다. ACE가 적절한 순서로 추가되도록 하는 것은 호출자의 책임입니다.