安全描述符操作

Windows API 提供用于获取和设置与安全对象关联的 安全描述符 组件的功能。 使用 GetSecurityInfoGetNamedSecurityInfo 函数检索指向对象安全描述符的指针。 这些函数还可以检索指向安全描述符的各个组件的指针:DACL、SACL、所有者 SID 和主组 SID。 使用 SetSecurityInfoSetNamedSecurityInfo 函数可设置对象安全描述符的组件。

通常,应将 GetSecurityInfoSetSecurityInfo 用于句柄标识的对象, 而 SetNamedSecurityInfoGetNamedSecurityInfo 应使用由名称标识的对象。 有关处理各种类型的对象时要使用的特定函数的详细信息,请参阅 安全对象

Windows API 提供用于操作安全描述符组件的其他函数。 有关使用访问控制列表 (DACL 或 SACL) 的信息,请参阅 从 ACL 获取信息创建或修改 ACL。 有关 SID 的信息,请参阅 安全标识符 (SID) 。

若要获取安全描述符中的控制信息,请调用 GetSecurityDescriptorControl 函数。 若要设置与自动 ACE 继承相关的控制位,请调用 SetSecurityDescriptorControl 函数。 其他控制位由设置安全描述符组件的各种函数设置。 例如,如果使用 SetSecurityInfo 更改对象的 DACL,则函数会根据需要设置或清除位,以指示安全描述符是否具有 DACL、是否为默认 DACL 等。 另一个示例是 资源管理器 (RM) 安全描述符中包含的控制位。 这些位根据资源管理器的实现使用,并通过 GetSecurityDescriptorRMControlSetSecurityDescriptorRMControl 函数进行访问。