非递归地更改窗口权限

非递归地更改窗口权限

我有一台 Windows Storage Server 2008 机器作为我们公司的文件服务器。我需要授予某人访问我们 Marketing 文件夹中相同文件夹和文件的权限(其中包含 100,000 多个文件)。用户需要访问 Marketing/images,但不需要访问 marketing 文件夹中的其他内容。因此,我的想法是向 Marketing 文件夹添加读取权限,然后向 images 文件夹、子文件夹和文件添加读/写权限。

当我添加 Marketing 文件夹的权限时,我选择了正确的读取权限,然后将范围设置为“仅限此文件夹”。当我单击“应用”时,它似乎触及了 Marketing 文件夹内的每个文件(这需要很长时间)。最后,它只像我预期的那样添加了对 Marketing 文件夹的权限,但它仍然必须触及其他每个文件。

它在做什么?所有其他文件都继承了它们的权限,那么它是否告诉每个文件“从 Marketing 继承权限,但用户 John Doe 除外”?我做错了吗?

答案1

实际上,您可以直接授予用户对图像文件夹的适当权限,而无需授予他们对父文件夹的任何权限。“绕过遍历检查”用户权限将允许用户遍历他们无权访问的一组文件夹,以到达他们有权限访问的文件夹。请注意,用户必须明确访问图像文件夹的路径,因为他们无法浏览到该文件夹​​。

来自“绕过遍历检查”用户权限解释:

绕过遍历检查

此用户权限决定哪些用户可以遍历目录树,即使用户可能没有遍历目录的权限。此权限不允许用户列出目录的内容,只允许用户遍历目录。此用户权限在默认域控制器组策略对象 (GPO) 和工作站和服务器的本地安全策略中定义。

工作站和服务器的默认设置:

管理员 备份操作员 用户 所有人 本地服务 网络服务

域控制器上的默认设置:

管理员 经过身份验证的用户 所有人 本地服务 网络服务 Windows 2000 之前的兼容访问

答案2

你做的是正确的。你注意到的行为(该过程需要“永远”并且树中的每个目录和文件似乎都被触及)只是 ACL API 的实现方式。代码可能没有检查更改的内容,因此它不知道在这种特定情况下,没有必要沿树向下递归。

joeqwerty 的回答也正确。我想强调的是,最终用户可能不习惯使用可以直接访问(指定完整路径)但不能浏览(在 Explorer 中从根目录向下移动层次结构)的路径。

相关内容