ACL

【勇芳软件工作室】汉化HomePreviousNext

ACL结构是访问控制列表(ACL)的标题。一个完整的ACL由一个ACL结构组成,后跟一个零个或多个访问控制条目(ACE)的有序列表。

typedef struct _ACL { Specifies the ACL's revision level.

BYTE AclRevision;

BYTE Sbz1;

WORD AclSize;

WORD AceCount;

WORD Sbz2;

} ACL;

会员

AclRevision

指定ACL的修订级别。此值应为ACL_REVISION。ACL中的所有ACE必须处于相同的修订级别。

Specifies the size, in bytes, of the ACL.

指定一个零字节的填充,将AclRevision成员对齐在16位边界上。

AclSize

指定ACL的大小(以字节为单位)。此值包括ACL结构和所有ACE。

AceCount

指定存储在ACL中的ACE数。

Sbz2ru-Latn

指定两个零字节的填充,将ACL结构对齐在32位边界上。

备注

ACL包括零个或多个ACE的顺序列表。ACL中的各个ACE编号从0到【n】,其中【n】 +1是ACL中的ACE数。编辑ACL时,应用程序会通过其索引引用ACL中的ACE。

ACL有两种类型:自由和系统。

自由ACL由对象的所有者或任何人授予访问对象的WRITE_DAC控制。它指定访问特定的用户和组可以对对象。例如,文件的所有者可以使用自由ACL来控制哪些用户和组可以访问和无法访问该文件。

对象还可以具有与其相关联的系统级安全信息,以系统管理员控制的系统ACL的形式。系统ACL可以允许系统管理员审核任何访问对象的尝试。

目前定义了三种ACE结构:

ACE结构描述
ACCESS_ALLOWED_ACE授予用户或组的指定权限。该ACE存储在自由ACL中。
ACCESS_DENIED_ACE拒绝对用户或组的指定权限。该ACE存储在自由ACL中。
SYSTEM_AUDIT_ACE指定什么类型的访问将导致系统级审计。此ACE存储在系统ACL中。

Windows NT目前不支持第四个ACE结构SYSTEM_ALARM_ACE.

ACL结构被视为不透明的应用程序,应用程序不会直接尝试与其成员一起工作。为了确保ACL在语义上是正确的,应用程序可以使用SeeAlso部分中列出的功能来创建和操作ACL。

每个ACLACE结构以双字边界开始。

也可以看看

AddAce, DeleteAce, GetAclInformation, GetSecurityDescriptorDacl, GetSecurityDescriptorSacl, InitializeAcl, IsValidAcl, SetAclInformation, SetSecurityDescriptorDacl, SetSecurityDescriptorSacl