可以通过两种方式更改主令牌或伪装令牌中的权限:
- 使用 AdjustTokenPrivileges 函数启用、禁用或删除特权。
- 使用 CreateRestrictedToken 函数限制或删除特权。
AdjustTokenPrivileges 无法向令牌添加特权。 它只能启用当前禁用的现有特权、禁用当前启用的现有特权或删除现有特权。 随后无法重新启用使用 AdjustTokenPrivileges 删除的任何特权。 有关示例,请参阅 在C++中启用和禁用特权。
若要向用户帐户分配特权,请参阅 向帐户分配特权。
CreateRestrictedToken 具有更广泛的功能,如下所示:
- 删除权限。 请注意,删除权限与禁用权限不同。 从令牌中删除权限后,无法将其放回。
- 将“拒绝仅”属性附加到令牌中的 SID。 这会影响禁止特定组或帐户,例如拒绝“每个人”组删除对特定文件的访问权限。 有关限制 SID 的详细信息,请参阅 访问令牌中的 SID 属性。
- 在令牌中指定一个限制性 SID 的列表。 有关限制 SID 的信息,请参阅 受限令牌。