访问控制条目(ACE)

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

访问控制列表(ACL)包含零个或多个访问控制条目(ACE),用于控制或监视指定受托人对对象的访问。每个ACE包含以下访问控制信息:

*标识受托人的安全标识符(SID)。受托人可以是Windows NT服务等程序的用户帐户,组帐户或登录帐户。

*一个访问掩码,指定由ACE控制的访问权限。

*表示ACE类型的标志。

*一组位标志,用于确定其他容器或对象是否可以从ACL附加的主对象继承ACE。

Windows NT目前支持三种类型的ACE。Windows NT目前不支持系统警报ACE。

类型描述
访问被拒绝的ACE用于DACL以拒绝受托人的指定访问权限。
访问允许的ACE在DACL中使用,授予受托人指定的访问权限。
系统审核ACE当受信者试图行使指定的访问权限时,用于SACL生成审核记录。

在DACL中,您应该将ACL中的ACE列表开头的任何访问被拒绝的ACE放在任何访问允许的ACE之前。在确定是否授予访问对象时,系统会根据ACL中的ACE检查访问令牌。当发生以下事件之一时,系统将停止检查ACE:

*一个或多个访问允许的ACE明确地将必要的访问权授予受托人或受托人所属的组。

*访问被拒绝的ACE明确拒绝所请求的访问权限。

*所有的ACE都已经被检查,而不允许所请求的访问,在这种情况下,访问被隐含地拒绝。

在ACL开头定位访问被拒绝的ACE可确保指定的受托人被拒绝访问,即使该列表中的访问允许的ACE授予对受托人或受托人所属的组的访问。

如果受托人是DACL中由ACE代表的几个组的成员,则授予每个组的权利适用于受托人。例如,受托人可以请求对对象的读/写访问。假设列表中的一个ACE授予组访问权限。另一个ACE授予对不同组的写访问权限。如果受托人属于这两个组,则读/写访问请求成功。

当系统管理员希望保留尝试访问受保护对象的日志时,SACL非常有用。当受信任者的访问尝试成功,失败或同时进行时,可以将系统审核ACE设置为生成审核记录。系统在系统事件日志中输入审核记录。管理员可以使用事件查看器来检查事件日志中的条目。应用程序可以使用事件日志函数访问事件日志。

ACE和ACL是不透明的结构。在内部,他们使用ACLACE_HEADERACCESS_ALLOWED_ACEACCESS_DENIED_ACESYSTEM_AUDIT_ACE结构来存储信息。但是,应用程序不应该直接使用这些结构的内容。为了确保ACL在语义上是正确的,请使用适当的Win32函数来创建和操作ACL和ACE。