![UAC - 当设置为“从不通知”时我是否仍然有双重令牌?](https://linux22.com/image/674992/UAC%20-%20%E5%BD%93%E8%AE%BE%E7%BD%AE%E4%B8%BA%E2%80%9C%E4%BB%8E%E4%B8%8D%E9%80%9A%E7%9F%A5%E2%80%9D%E6%97%B6%E6%88%91%E6%98%AF%E5%90%A6%E4%BB%8D%E7%84%B6%E6%9C%89%E5%8F%8C%E9%87%8D%E4%BB%A4%E7%89%8C%EF%BC%9F.png)
UAC 可以设置为永不通知,但这与根本没有 UAC 不一样。
我的意思是,操作系统是否仍然为管理员用户创建双重令牌,但只是自动提升一切?
这种区别很重要,因为各种文件系统操作的行为与 Windows NT 4.0 不同。
例如,当资源管理器看到一个文件夹时,Administrators:Full-Control
它通常会提示您无权访问并提升权限,然后自动将您的用户添加到 ACL 中。
我似乎观察到了这种情况,但我真的不喜欢。通过将 UAC 设置为不提示,我假设这个提升和修改 ACL 将会自然发生,但它仍然会干扰我的 ACL。
总的来说,自从有了 UAC,我似乎花了很多时间在没有权限处理任何事物并且摆弄 ACL,而在 NT 4.0 时代,生活很简单,ACL 就是真理。
我为我的岳母“获得”了 UAC,但是在专家出没的服务器上?!
答案1
在我看来,这不是一种健康的态度。即使是专家也会犯错。此外,世界上有成千上万的服务器管理员,我不会把他们称为“专家”。你不会听到很多 *nix 管理员说这样的话:“哥们,这简直是胡说八道,我是个专家,我不应该这么做sudo
!“
无论如何,我们来回答你的问题。
首先,你问,(释义)“如果我禁用 UAC,我还会有一个受限令牌吗?”
那要看情况。你是谁?并非系统上的每个人都有受限令牌。只有登录系统且属于特权组(如管理员、域管理员等)或拥有敏感权限(如SeTcpPrivilege
等)的用户才会在登录时获得除完整令牌之外的受限令牌。
请参考Windows Internals,第 6 版第一部分第 6 章提供了在生成受限访问令牌之前要检查哪些组和哪些权限的完整列表。
上述书中的一段引文:
如果存在一个或多个此类组或权限,LSASS 将为用户创建一个受限令牌(也称为筛选管理令牌),并为两者创建一个登录会话。标准用户令牌附加到 Winlogon 启动的初始进程(默认情况下为 Userinit.exe)。
注意如果 UAC 已被禁用,管理员将使用包含其管理员组成员身份和权限的令牌运行。
另外,从第 2 章开始(重点是我加的):
身份验证成功后,LSASS 将调用安全引用监视器中的函数(例如,NtCreateToken)来生成包含用户安全配置文件的访问令牌对象。如果使用用户帐户控制 (UAC)和如果登录的用户是管理员组的成员或具有管理员权限,则 LSASS 将创建令牌的第二个受限版本。然后,Winlogon 会使用此访问令牌在用户会话中创建初始进程。
您可以使用 自行测试whoami /priv
。在 UAC 开启的情况下,以管理员组成员身份登录。在非提升的命令提示符中,您将看到权限列表在非提升的命令提示符中要短得多,这意味着同一用户存在两个单独的令牌:
现在关闭 UAC(或设置为“从不通知”),重新启动机器,并尝试相同的测试。您现在会注意到标准进程和提升进程之间没有区别。不再有受限访问令牌。