设置 Windows ACL 以允许子目录访问

设置 Windows ACL 以允许子目录访问

我们正在将一些目录从 NetWare 移到 Windows,并遇到了权限问题。由于 NetWare 使此操作变得简单,因此我们在卷顶部拥有整个卷,其中没有用户拥有任何权限,而第一、第二和第三层目录是授予权限的地方。由于 NetWare 受托人系统的工作方式,如果您有权访问树中深处的目录,则可以毫无问题地从根目录浏览到它。这有一个方便的副作用,即当您枚举您无权访问的目录时,仅显示您有权访问的目录。

“仅显示您有权访问的目录”问题已通过 Microsoft 的基于访问的枚举 (ABE) 得到解决,是的,这是一件好事。

我们遇到的问题是确定需要设置哪些权限和安全策略才能允许用户从根共享浏览到他们有权访问的目录。示例使这一点更容易解释。

\\server\share\finance\audit\auditreports\HR-Q4-2007

审计团队授予人力资源经理访问上述审计报告目录(“HR-Q4-2007”)的权限。在 NetWare 下,这将允许人力资源经理从 \\server\share\ 开始,然后浏览财务、审计和审计报告,以访问该目录。只需一个权限,它就可以正常工作。

“绕过遍历检查”安全策略意味着人力资源经理可以将驱动器直接映射到 \\server\share\finance\audit\auditreports\HR-Q4-2007\,这样就可以正常工作。这不是我们想要的,我们希望用户能够从顶部开始并向下浏览。

这是否需要使用“遍历文件夹”NTFS 权限来启用此功能?如果是这样,则意味着权限环境要复杂得多,但我们可以解决它。当 ABE 也在使用时,如何解决这个问题?

答案1

您正在寻找应用于无继承文件夹的“列出文件夹内容”权限(包括“遍历文件夹”权限)。但是,为了使基于访问权限的枚举起作用,您无法沿层次结构继承该权限,因此您必须对此有点疯狂。

在共享的根目录中,添加权限“HR 经理 - 列出文件夹内容”,然后在“高级”设置中,将该权限设置为应用于“仅此文件夹”。由于您没有继承对子文件夹或文件的新权限,ABE 将“隐藏”用户无权访问的子文件夹和文件,但仍允许“HR 经理”用户遍历共享的顶级文件夹。

重复此操作,向下移动层次结构的每个级别,直到达到“人力资源经理”的权限允许的级别。

对许多不同的组执行此操作会导致文件夹的 ACL 过大,并可能带来很多管理麻烦。我最终使用“经过身份验证的用户 - 列出文件夹内容”应用于共享的根目录,并从根目录开始限制文件夹。我还尝试将权限层次结构保持得尽可能浅,这样如果可能的话,我就不必对较低级别的其他组执行这种“仅限此文件夹”技巧。

这是一个丑陋的黑客行为,但据我所知,这是让基于访问权限的枚举执行您想要的操作的最佳方法。“继承权限过滤器”将是所以很好,而且可以实现我们想要的效果,但是微软并没有实现这样的功能。

(我从来就不是特别喜欢 Netware,但是文件系统上关于实时继承和继承过滤的权限模型非常棒。)

答案2

经历过,做过。大约 8 年前从 Netware 迁移到 Win2K,是的,权限工作方式的差异可能是一个绊脚石。我能给出的最好建议是不要太纠结于此,有时要接受一个不太完美的解决方案。

你永远无法复制精确的行为,所以归根结底,就是需要什么才能让用户获得他们需要的数据。我无法告诉你如何让它工作确切地和在 Netware 下一样,但我可以提供一些提示,告诉你如何避免创建一些可能会给你带来麻烦的东西。

在这种情况下,我的目标是让结构尽可能简单。将“auditreports”文件夹拆分为单独的组文件夹将是我的第一步。从技术上讲,没有真正的理由这样做,如果开启正确的权限,它作为子文件夹就可以正常工作,但从保持您这边可管理性的角度来看,这会让事情变得更容易。

我每次做的下一件事是将 UNC 放入 AD 中的组文件夹中的组描述中。这样,您可以编写一个登录脚本,读取用户所属的组,提取描述属性,并将驱动器映射到它。我不确定您的帖子中是否有 AD,但拥有一个您永远不需要更新的登录脚本可以节省大量的管理开销。如果您可以在您的环境中做到这一点,那就去做吧。

最后,回到我的第一点,带着 Netware 的帽子来谈论 Windows 文件共享并不是一个好主意。它们是不同的操作系统,它们的工作方式也不同。在理想情况下,你只需进行迁移,就用户而言,绝对不会发生任何变化,但有时你必须打破鸡蛋才能做成煎蛋卷。

答案3

这些说明是执行此操作的“最终结果”和正确过程。

先决条件:启用基于访问的枚举。

  1. 服务器管理器 > 文件和存储服务 > 共享
  2. 在特定共享上,右键单击 > 属性 > 设置 > 检查 - 启用基于访问的枚举

其次:创建 Active Directory 组

  1. 导航到您的用户文件夹。在文件夹下方,创建或使用现有的组 OU。
  2. 创建新组并相应命名(例如文件夹权限 - Sub_Folder1)
  3. 将用户添加到新组

将权限专门分配给 Sub_Folder1。

  1. 在服务器的资源管理器中导航到 Sub_Folder1(例如 Sharing_Folder > Sub_Folder1)
  2. 右击>属性
  3. 安全 > 高级 > 禁用继承 > 转换
  4. 添加具有所需权限的新组。选中“替换所有子组...”
  5. 关闭属性。

现在正确共享它以便枚举动态发生。

  1. 右键单击 Sub_Folder1
  2. 与... > 特定人员共享
  3. 选择新组。
  4. 确保该组的权限正确...读取或读/写。
  5. 然后分享。

确认

  1. 现在让用户退出窗口并重新登录。
  2. 新路径应该是可访问的,并且只能看到到 Sub_Folder1 的特定路径。
  3. 如果您授予了这些权限,则将允许在 Sub_Folder1 中进行完全控制。

相关内容