![Windows 平台上的 UAC 和 ACL 之间有什么关系(如果有的话)?](https://linux22.com/image/566097/Windows%20%E5%B9%B3%E5%8F%B0%E4%B8%8A%E7%9A%84%20UAC%20%E5%92%8C%20ACL%20%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%85%B3%E7%B3%BB%EF%BC%88%E5%A6%82%E6%9E%9C%E6%9C%89%E7%9A%84%E8%AF%9D%EF%BC%89%EF%BC%9F.png)
Windows 平台上的 UAC 和 ACL 之间有什么关系?这是两个独立的安全方案吗?还是其中一个是另一个的超集?
直觉上,我希望它们是相关的,但我已经尝试了几个小时来弄清楚这一点,但没有通过谷歌搜索找到任何讨论这两个主题的文档,更不用说提供比较/对比/关系的讨论。
任何想法和链接都将不胜感激。
答案1
它们是相关的,因为 UAC 依赖于 ACL(以及所有相关的安全设备)的存在才能发挥作用。
UAC 的工作原理是删除(从技术上讲,禁用)非提升进程的管理员令牌。这意味着,如果特定文件或文件夹的 ACL 仅允许管理员访问,则非提升进程将无权访问。这就是为什么安装程序无法在未先提升权限的情况下写入 Program Files 的原因。
编辑:
看本文有关 UAC 的更多信息。
具体来说:“当管理员登录到运行 Windows 7 或 Windows Vista 的计算机时,将为用户分配两个单独的访问令牌。访问令牌包含用户的组成员身份以及授权和访问控制数据,Windows 操作系统使用访问令牌来控制用户可以访问的资源和任务。”
我想您可能会争辩说,UAC 依赖于 Windows 授权模型,而 ACL 只是该模型的一个特定组件,因此 UAC 与 ACL 无关。我认为这不是一个有用的看待它的方式。让我这样说:如果没有 ACL,UAC 就毫无意义。
您还应该阅读本文它解决了一些关于 UAC 的常见误解,特别是它是一种安全功能的误解:“UAC 的主要目标是使更多用户能够以标准用户权限运行。但是,UAC 的一项技术看起来和闻起来都像是一种安全功能:同意提示。许多人认为,软件必须要求用户授予其管理权限这一事实意味着他们可以防止恶意软件获得管理权限。”
答案2
它们是独立的安全方案。UAC 会翻转显示并提示您单独验证您尝试安装/修改/等的应用程序。
ACL 决定您可以/不能访问的内容等等。两者之间没有共同点。
作为一个思考实验:您在文件夹 (C:\folder) 中有一个安装程序 (install.exe)。如果用户没有访问该文件夹的权限,则无论是否启用 UAC,安装程序都不会运行。如果用户没有软件安装权限,则无论是否启用 UAC,安装程序都不会运行。如果用户确实有权访问该文件夹并可以安装软件,则无论是否启用 UAC,安装程序都会运行。
UAC 并非旨在取代 ACL。它被嫁接到 Windows 上,以试图阻止静默安装和程序升级。
xxxxxx