Udostępnij za pośrednictwem


Kolejność kontroli dostępu w daCL

Gdy proces próbuje uzyskać dostęp do zabezpieczanego obiektu, system przechodzi przez wpisy kontroli dostępu (ACL) w dyskrecjonalnych list kontroli dostępu obiektu (DACL), dopóki nie znajdzie kontroli dostępu, które zezwalają lub odmawiają żądanego dostępu. Prawa dostępu, do których lista DACL zezwala użytkownikowi, mogą się różnić w zależności od kolejności kontroli dostępu w listach DACL. W związku z tym system operacyjny Windows XP definiuje preferowaną kolejność dla ACL zabezpieczanego obiektu. Preferowana kolejność zapewnia prostą strukturę, która gwarantuje, że faktycznie odmowa dostępu aCE nie zezwala na dostęp. Aby uzyskać więcej informacji na temat algorytmu systemu do sprawdzania dostępu, zobacz How DACLs Control Access to an Object.

W przypadku systemów Windows Server 2003 i Windows XP właściwa kolejność kontroli dostępu jest skomplikowana przez wprowadzenie specyficznych dla obiektów kontroli dostępu i automatycznego dziedziczenia.

W poniższych krokach opisano preferowaną kolejność:

  1. Wszystkie jawne acEs są umieszczane w grupie przed dziedziczone acEs.
  2. W grupie jawnych kontroli dostępu acE są umieszczane przed dostępem dozwolonych kontroli dostępu.
  3. Dziedziczone ACL są umieszczane w kolejności, w której są dziedziczone. Wartości ACE dziedziczone z obiektu nadrzędnego obiektu podrzędnego są najpierw, a następnie ACL dziedziczone z dziadków i tak dalej na drzewie obiektów.
  4. Dla każdego poziomu dziedziczych kontroli dostępu acE są umieszczane przed dostępem dozwolonych kontroli dostępu.

Oczywiście nie wszystkie typy ACE są wymagane w liście ACL.

Funkcje takie jak AddAccessAllowedAceEx i AddAccessAllowedObjectAce dodają ACE na końcu listy ACL. Obowiązkiem rozmówców jest zapewnienie, że acEs są dodawane w odpowiedniej kolejności.