Windows 组策略权限疑难解答

Windows 组策略权限疑难解答

我对 Windows AD 域上的权限问题感到困惑。

我有一台 Windows Server 2008 服务器(带有几台 Windows Server 2003 虚拟机),它们都是域的成员(但绝不是备份控制器等 - 这是通过另一台服务器处理的)。其中一些服务器需要由通常只具有域用户权限的人员进行管理,因此我创建了一个新组(VMAdmins)并将他们添加到其中,并开始构建要应用于机器的特定 GPO。

出于组策略和整洁的原因,虚拟机位于它们自己的 OU 中,并且我创建了一个链接到该特定 OU 的 GPO。

我已在“计算机配置”>“Windows 设置”>“安全设置”>“本地策略”>“用户权限分配”下为上述组分配了各种权限来测试理论。

我已运行 gpupdate /force 并重新启动服务器,然后运行 ​​rsop.msc 以确定所应用的策略。该工具正确显示了“源 GPO”下正在应用的 GPO,并且该组被列为具有该权限。

然而,问题的关键在于;

whoami /priv 与 rsop.msc 所说的不一致,例如 rsop 说用户具有关机权限,但在 whoami 下却显示“已禁用”。

有人能解释一下为什么会发生这种情况吗?

非常感谢,

汤姆

答案1

whoami /priv 显示权限的当前状态,而不是实际权限。使用域帐户的“管理员”会看到相同的内容。当您实际执行此操作时,它会“启用”。

这里有一个好的解释: http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAPrivilege.html

引自那里:

可以通过一个示例演示特权的正常使用模式。假设您想要重新启动系统。您知道这是一个特权操作,因此您进入进程令牌并尝试启用 SeShutdownPrivilege。如果您已根据策略获得此特权,则您的令牌应该具有该特权,因此您将被允许启用它。如果您尚未被授予此特权,则您启用它的尝试将失败,此时您需要处理不允许重新启动系统的事实(例如,在桌面应用程序中,您可以使用消息框通知用户她缺乏特权)。假设您已成功启用特权,您将调用 Win32 函数 ExitWindowsEx 来请求重新启动。最后,您应该禁用该特权。请注意这里的模式:启用、使用、禁用 - 就像警察和他的警灯一样。

因为您要重新启动系统,所以您可能会认为禁用特权是浪费时间。但是,正如您永远不应该偷懒而不释放内存一样,您也不应该在使用完特权后立即禁用它。您永远不知道谁会将您的代码剪切并粘贴到另一个项目中!此外,例程如何知道重新启动确实会发生并且您的程序实际上会退出?用户通常会启动重新启动,但当他们意识到需要先保存一些工作时才取消重新启动。在负责实际实施重新启动的例程中,很难深入了解所有这些事情。确保您的每个安全原语(如特权使用)都遵循最佳实践。不要走捷径。

有些特权一旦被授予,就意味着始终处于启用状态。SeChangeNotifyPrivilege(也称为“绕过遍历检查”3)和 SeImpersonatePrivilege 就是显著的例子。它们就像警察的手枪一样 — — 他被授予在街上携带它的权利,并且他从不离开它就去上班。如果您通过策略获得了这些特权中的任何一个,则操作系统将在您登录时获得的第一个令牌中默认启用它们,因此您不必担心在运行时弄乱它们。许多 Win32 函数(但不是全部)都包含启用和禁用特权的功能,以方便使用。此外,我预计,随着 .NET Framework 继续抽象更多 Win32 API,您将越来越不需要担心手动启用特权。但这是一个技术细节。安全策略仍将控制谁可以和不能执行特权操作,因此您应该了解 Windows 定义的特权,以便了解您的程序在安全策略方面有哪些要求。

答案2

环回处理是否启用?

您是否将安全过滤应用于正确的对象/用户/组?

相关内容