Sdílet prostřednictvím


Vytvoření nebo úprava ACL

Systém Windows podporuje sadu funkcí, které vytvářejí seznam řízení přístupu (ACL) nebo upravují položky řízení přístupu (ACE) v existujícím seznamu řízení přístupu.

Funkce SetEntriesInAcl vytvoří nový seznam ACL. SetEntriesInAcl může pro ACL zadat zcela novou sadu položek ACE, nebo může sloučit jednu nebo více nových položek ACE s položkami ACE existujícího ACL. Funkce SetEntriesInAcl používá pole EXPLICIT_ACCESS struktur k určení informací pro nové ACE. Každá EXPLICIT_ACCESS struktura obsahuje informace, které popisují jednu ACE. Tyto informace zahrnují přístupová práva, typ ACE, příznaky, které řídí dědičnost ACE, a strukturu SPRÁVCE, která identifikuje správce.

Přidat novou ACE do existujícího ACL

  1. Pomocí funkce GetSecurityInfo nebo GetNamedSecurityInfo získejte existující seznam DACL nebo SACL z popisovače zabezpečení objektu.
  2. Pro každou novou funkci ACE volejte funkci BuildExplicitAccessWithName, která vyplní strukturu EXPLICIT_ACCESS informacemi, které popisují ACE.
  3. Volání SetEntriesInAcl, specifikování existujícího seznamu ACL a pole EXPLICIT_ACCESS struktur pro nové ACE. Funkce SetEntriesInAcl přiděluje a inicializuje přístupový seznam řízení (ACL) a jeho záznamy přístupu (ACE).
  4. Zavolejte funkci SetSecurityInfo nebo SetNamedSecurityInfo pro připojení nového seznamu ACL k popisovači zabezpečení objektu.

Pokud volající určuje existující seznam ACL, SetEntriesInAcl sloučí nové informace ACE s existujícími seznamy ACE v seznamu ACL. Vezměte v úvahu například případ, kdy stávající seznam ACL uděluje přístup zadanému správci a struktura EXPLICIT_ACCESS zakazuje přístup stejnému správci. V tomto případě SetEntriesInAcl přidá novou ACE odepření přístupu pro správce a odstraní nebo upraví stávající ACE s povoleným přístupem pro správce.

Ukázkový kód, který slučuje novou ACE do existujícího seznamu ACL, najdete v tématu Úprava seznamů ACL objektu v jazyce C++.