授予对子目录的访问权而不授予对父目录的访问权


12

我有一个涉及Windows文件服务器的场景,其中“所有者”希望向以下类型的用户组分配权限:

  • \\server\dir1\dir2\dir3:读取,写入和执行
  • \\server\dir1\dir2:没有权限
  • \\server\dir1:没有权限
  • \\server:读取并执行

据我了解(更新:这整个段落是错误的!),这是不可能做到的,因为必须授予目录链中所有父目录的Read & Execute权限,操作系统才能“看到”子目录目录并进入它们。没有此许可,即使您拥有对子目录的完全访问权限,也无法在尝试访问嵌套目录时获取安全上下文令牌。

我们正在寻找解决此问题的方法,而无需将数据从\\server\dir1\dir2\dir3移至\\server\dir4

我想到了一个解决方法,但不确定该方法是否可行,它正在创建某种链接或结点\\server\dir4,该链接或结点是对的引用\\server\dir1\dir2\dir3。我不确定如果用户没有Read & Execute\\server\dir1\dir2或的许可,那么哪个可用选项(如果有)可以用于此目的\\server\dir1,但据我所知,这些选项是:

  • NTFS符号链接,
  • 交界处
  • 硬链接。

所以问题:

  • 这些方法是否适合实现我的目标?
  • 是否还有其他链接或间接引用目录的方法(我上面没有列出)可能合适?
  • 是否有任何直接的解决方案,不涉及发放Read & Execute\\server\dir1\\server\dir2,但仍允许访问\\server\dir1\dir2\dir3

这个有可能。用户将看到目录,但如果未授予读取权限,则根本看不到目录的内容,这很容易设置。
拉姆猎犬,2012年

这也是我的问题。感谢您提出讨论。并且为了更新您的问题以立即反映出您的假设是错误的。
tyron

Answers:


15

您在最初的假设中犯了错误,这使其余的问题无济于事。

,用户需要在最低权限dir1dir2Traverse Directory。不过,这很可能会对您的用户造成问题-因此,我建议Traverse Directory List Folders。他们将能够浏览前两个目录并到达dir3具有更多权限的位置,但是甚至看不到前两个目录中存在哪些文件。

Read & ExecuteModify这样的权限只是单个权限的集合。它们是您首先看到的,因为它们是最常用的。如果您需要非常细致(例如这种情况),请单击Advanced按钮,然后挖掘那里列出的选项。


极好的信息(2)!但是有些事情我没有赶上:“但是,这很可能会给您的用户带来麻烦”。为什么会有问题?命名很简单,因为“遍历”似乎是唯一需要的许可。用户应该期待什么样的问题?
tyron 2014年

12

令人惊讶的是,如果个人拥有其至少具有R权限的子文件夹的完整路径,则他们不需要任何父文件夹的权限,甚至不需要遍历。他们只需使用UNC即可访问它。(当然,他们必须对共享具有读取权限;但不能对要访问的级别以上的任何文件夹具有读取权限)。

当我被告知时,我不相信这一点,但是测试证明了这一点。

这与我以为我对Windows世界中的权限知之甚少,我怀疑这会让许多人感到意外。

\ server \ folder1 \ folder2 \ folder3

如果文件夹1和文件夹2上的Bilbo完全没有权限,但是Bilbo对文件夹3进行了修改(例如),则\ server \ folder1 \ folder2 \ folder3会将他带到那里,没有问题。


folder1具有SHARE权限和NTFS权限设置时,folder3此方法\\server\c$\folder1\folder2\folder3有效。
user2304170

1
要添加到此答案中,默认情况下,大多数/所有用户都将这种隐式“能力”遍历父文件夹到您可以访问的子文件夹(无论深度如何)是由组策略中授予的用户权限“绕过遍历检查”授予的在多数情况下。请参阅itprotoday.com/management-mobility/…,因为我在此处无法粘贴足够的内容以捕获在什么情况下获得许可的列表。
鲁克

还可以通过绕过遍历检查作为NTFS性能增强功能,以允许在打开最终所需的文件夹/文件的过程中跳过检查树中每个文件夹的权限,因此,除非您知道需要,否则不建议将其删除。极高的安全性。
鲁克

1

一种类似于MDMarra的解决方案是如下设置NTFS权限:

  1. dir1:授予列表文件夹内容(遍历文件夹/执行文件,列表文件夹/读取数据,读取属性,读取扩展属性,读取权限)
  2. 但是选择此文件夹仅适用于下拉菜单
  3. dir2:授予列表文件夹内容应用于此文件夹
  4. dir3:授予所需的读/写权限并仅应用于此文件夹,子文件夹和文件子文件夹和文件

最终结果是用户/组可以读取每个单独的父文件夹并向下钻取到子文件夹,而无需任何其他文件夹或文件。


MDMarra的答案不同,后者 MDMarra的答案,其中有更详细的说明。
斯科特,

0

因此,我一直在以下环境中进行测试,希望获得最终的,经过测试的答案,并且只需通过浏览(即通过Windows文件资源管理器)简单遍历文件夹的最低最低权限即可。这是那些想要锁定细节的人的结果。

我尚未在生产中对此进行测试,以查看削减“标准”经过良好测试的遍历权限模板是否有任何奇怪的副作用

  • 遍历文件夹
  • 清单资料夹
  • 读取属性
  • 阅读分机号。属性
  • 阅读权限

...这基本上是普通的“读取和执行”权限,仅限于“此文件夹”。也就是说,到目前为止,对于仅在服务器上移动,复制和删除文件的用户以及完全使用服务器上的文档副本进行工作的用户而言,小型测试已经完全可以了。


环境:

  • 服务器:Windows 2008 R2 –几乎没有组策略,与用户权限无关,配置为域控制器,AD集成DNS,非常标准/基本的设置。
  • 客户端:Windows 7 SP1 –在VM中全新安装,在任何更改之间重新启动,以确保每次都完全重新创建到服务器的连接。
  • 两种安装均至少在2017年末进行了补丁,因此与权限相关的所有内容可能都已在Windows时间轴上立即推出。
  • 这是在访问虚拟机中作为永久网络驱动器(\ server \ share-> S :)挂载的共享文件夹。共享权限为“身份验证用户”的“读取+更改”组,其中涵盖了测试用户以及在某个时候可能需要访问的所有其他用户。
  • 每次更改后,我都将重新启动VM,打开File Explorer,然后简单地正常浏览共享,然后沿着一条我知道测试用户拥有这些遍历权限(相对于未拥有这些遍历权限)的路径走。

结果:

  • 根文件夹上必需:ListFolder-ReadData + ReadAttributes(2x权限)
  • 在子文件夹上必需:ListFolder-ReadData(1x权限)
  • 可选:TraverseFolder--ExecuteFile

    ->仅当明确禁止“绕过遍历检查用户”权限时,此可选权限才有意义,因为默认情况下在99%的情况下该权限都处于启用状态。换句话说,启用“绕过遍历检查”用户权限(在组策略中公开,而不在NTFS文件/文件夹权限中公开)默认情况下会完全消除此特权,并有效地使此特权在任何地方都启用。注意:我尚未测试过是否明确拒绝此权限会相应地阻止“绕过遍历检查”用户权限在该特定实例中生效,但是可能)。

补充信息:“绕过遍历检查”用户权限允许某人被动遍历他们可以直接访问的子文件夹(无论层次有多深)(即,权限在该文件/文件夹上设置,但不一定在其他任何位置)文件路径)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.