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
- Pomocí funkce GetSecurityInfo nebo GetNamedSecurityInfo získejte existující seznam DACL nebo SACL z popisovače zabezpečení objektu.
- Pro každou novou funkci ACE volejte funkci BuildExplicitAccessWithName, která vyplní strukturu EXPLICIT_ACCESS informacemi, které popisují ACE.
- 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).
- 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++.