访问控制项

访问控制项 (ACE) 描述与特定安全标识符 (SID) 关联的访问权限。 OS 评估 ACE,以基于其凭据计算授予特定程序的有效访问权限。 例如,当用户登录计算机并执行程序时,程序将使用与该特定用户帐户关联的凭据。

当程序尝试打开对象时,Windows 会将与程序关联的凭据与与对象关联的安全控件进行比较。 然后,安全引用监视器使用 ACE 信息来确定是应允许还是拒绝程序访问给定对象。 ACE 决定安全子系统的行为。

下图演示了访问控制项。

说明访问控制项的关系图。

安全子系统使用多种 ACES 类型,包括以下类型。 ACE 结构的 Type 成员控制 ACE 的解释。 已定义的类型包括:

  • ACCESS_ALLOWED_ACE_TYPE—此类型表示 ACE 指定了授予特定 SID 的访问权限。

  • ACCESS_DENIED_ACE_TYPE 表示 ACE 指定了要拒绝特定 SID 的访问权限。

  • SYSTEM_AUDIT_ACE_TYPE 表示 ACE 指定了审核行为。

  • SYSTEM_ALARM_ACE_TYPE 表示 ACE 指定了警报行为。

  • ACCESS_ALLOWED_COMPOUND_ACE_TYPE 表示 ACE 与特定服务器及其模拟的实体绑定。

ACCESS_XXX 类型用于控制对对象的编程访问。 SYSTEM_XXX 类型用于控制访问对象时安全子系统的审核和警报行为。 安全子系统的实际行为是通过组合与对象关联的部分或所有 ACE 的信息来计算的。

驱动程序可以使用 RtlAddAccessAllowedAce 例程构造 ACCESS_ALLOWED_ACE_TYPE 的 ACE。 若要添加其他类型的 ACE 条目,驱动程序编写器必须构造自己的函数,因为 WDK 不提供其他支持例程。