访问控制项

ACE) (访问控制项描述与特定 SID 关联的访问权限。 访问控制项由操作系统评估,以便根据特定程序的凭据计算授予的有效访问权限。 例如,当用户登录到计算机,然后执行某个程序时,程序将使用与该特定用户的帐户关联的凭据。

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

下图演示了访问控制项。

说明访问控制项的示意图。

安全子系统使用五种类型的 ACE。 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 绑定到特定服务器及其正在模拟的实体。

因此,其中三种类型用于控制对对象的编程访问,而另外两种类型用于控制访问对象时安全子系统的审核和警报行为。 请注意,安全子系统的实际行为是通过组合部分或所有与 对象关联的 ACE 的信息来计算的。

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