ACL-Struktur (winnt.h)

Die ACL-Struktur ist der Header einer Zugriffssteuerungsliste (Access Control List , ACL). Eine vollständige ACL besteht aus einer ACL-Struktur gefolgt von einer sortierten Liste mit null oder mehr Zugriffssteuerungseinträgen (ACEs ).

Syntax

typedef struct _ACL {
  BYTE AclRevision;
  BYTE Sbz1;
  WORD AclSize;
  WORD AceCount;
  WORD Sbz2;
} ACL;

Member

AclRevision

Gibt die Revisionsebene der ACL an. Dieser Wert sollte ACL_REVISION werden, es sei denn, die ACL enthält ein objektspezifisches ACE. In diesem Fall muss dieser Wert ACL_REVISION_DS werden. Alle ACEs in einer ACL müssen sich auf derselben Revisionsebene befinden.

Sbz1

Gibt einen Abstand von Nullbyte an, der das AclRevision-Element an einer 16-Bit-Grenze ausrichtet.

AclSize

Gibt die Größe der ACL in Bytes an. Dieser Wert umfasst die ACL-Struktur , alle ACEs und den potenziellen nicht verwendeten Arbeitsspeicher.

AceCount

Gibt die Anzahl der in der ACL gespeicherten ACEs an.

Sbz2

Gibt zwei Leerbytes an , die die ACL-Struktur an einer 32-Bit-Grenze ausrichten.

Hinweise

Eine ACL enthält eine sequenzielle Liste mit null oder mehr ACEs. Die einzelnen ACEs in einer ACL werden von 0 bis n nummeriert, wobei n+1 die Anzahl der ACEs in der ACL ist. Beim Bearbeiten einer ACL verweist eine Anwendung auf einen ACE innerhalb der ACL durch den Index des ACE.

Es gibt zwei Arten von ACL: diskretionär und System.

Eine diskretionäre Zugriffssteuerungsliste (DACL) wird vom Besitzer eines Objekts oder einer person gesteuert, die WRITE_DAC Zugriff auf das Objekt gewährt wird. Es gibt den Zugriff, den bestimmte Benutzer und Gruppen auf ein Objekt haben können. Beispielsweise kann der Besitzer einer Datei eine DACL verwenden, um zu steuern, welche Benutzer und Gruppen zugriff auf die Datei haben können und welche nicht.

Einem Objekt können auch Sicherheitsinformationen auf Systemebene zugeordnet sein, in Form einer systemzugriffskontrollliste (SACL), die von einem Systemadministrator gesteuert wird. Eine SACL ermöglicht es dem Systemadministrator, alle Versuche zu überwachen, um Zugriff auf ein Objekt zu erhalten.

Eine Liste der derzeit definierten ACE-Strukturen finden Sie unter ACE.

Eine vierte ACE-Struktur, SYSTEM_ALARM_ACE, wird derzeit nicht unterstützt.

Die ACL-Struktur ist so zu behandeln, als wäre sie undurchsichtig, und Anwendungen sollen nicht versuchen, direkt mit ihren Membern zu arbeiten. Um sicherzustellen, dass ACLs semantisch korrekt sind, können Anwendungen die im Abschnitt Siehe auch aufgeführten Funktionen verwenden, um ACLs zu erstellen und zu bearbeiten.

Jede ACL - und ACE-Struktur beginnt an einer DWORD-Grenze .

Die maximale Größe für eine ACL, einschließlich ihrer ACEs, beträgt 64 KB.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winnt.h (Einschließen von Windows.h)

Weitere Informationen

AddAce

DeleteAce

GetAclInformation

GetSecurityDescriptorDacl

GetSecurityDescriptorSacl

InitializeAcl

IsValidAcl

SetAclInformation

SetSecurityDescriptorDacl

SetSecurityDescriptorSacl