我们正在将一些目录从 NetWare 移动到 Windows,并且遇到了权限差异。因为 NetWare 使这很容易,所以我们有整个卷,在卷的顶部没有用户拥有任何权限,并且第一层、第二层和第三层目录是授予权限的地方。由于 NetWare 受托人系统的工作方式,如果您可以访问树深处的目录,则可以毫无问题地从根目录浏览到该目录。这有一个方便的副作用,即仅在您枚举您无权进入的目录时显示您有权访问的目录。
“仅显示您有权访问的目录”的问题是通过 Microsoft 的基于访问的枚举 (ABE) 解决的,是的,这是一件好事。
我们遇到的问题是弄清楚需要设置哪些权限和安全策略才能允许用户从根共享浏览到他们有权访问的目录。示例使这更容易解释。
\\server\share\finance\audit\auditreports\HR-Q4-2007
审计小组授予人力资源经理对上述审计报告目录的权限(“HR-Q4-2007”)。在 NetWare 下,这将允许 HR 经理从 \\server\share\ 开始,然后浏览财务、审计和审计报告,以进入目录。一个许可,它就奏效了。
“绕过遍历检查”安全策略意味着 HR 经理可以将驱动器直接映射到 \\server\share\finance\audit\auditreports\HR-Q4-2007\ 并且它会正常工作。这不是我们想要的,我们希望用户能够从顶部开始向下浏览。
这是否需要使用“遍历文件夹”NTFS 权限来启用此功能?如果是这样,这意味着一个更复杂的权限环境,但我们可以解决它。当ABE也在使用时,这个问题如何解决?
您正在寻找应用于无继承文件夹的“列出文件夹内容”权限(包括“遍历文件夹”权限)。但是,为了使基于访问的枚举起作用,您不能沿层次结构继承该权限,因此您必须对它有点疯狂。
在共享的根目录下,添加权限“人力资源经理 - 列出文件夹内容”,然后在“高级”设置中,将该权限设置为“仅适用于此文件夹”。因为您没有继承对子文件夹或文件的新权限,所以 ABE 将“隐藏”用户无权访问的子文件夹和文件,但仍允许“人力资源经理”用户遍历共享的顶级文件夹。
重复向下移动层次结构的每个级别,直到您达到“人力资源经理”权限已允许的级别。
为许多不同的组执行此操作会导致文件夹上的 ACL 很大,并可能导致很多管理问题。我最终使用“经过身份验证的用户 - 列出文件夹内容”应用于共享的根目录,并在根目录下使用受限文件夹。我还尝试使我的权限层次结构尽可能浅,这样我就不必对较低级别的其他组执行“仅限此文件夹”的技巧,如果可能的话。
这是一个丑陋的黑客,但这是我所知道的让基于访问的枚举来做你想做的事情的最好方法。“继承的权限过滤器”会非常好,并且会做我们想要的,但微软没有实现这样的事情。
(我从不特别喜欢 Netware,但是文件系统上的权限模型与实时继承和继承过滤有关,非常棒。)
去过也做过。大约 8 年前从 Netware 迁移到 Win2K,是的,权限工作方式的差异可能是一个绊脚石。我能给出的最好建议是不要太挂念它,有时接受一个不太完美的解决方案。
您将永远无法复制精确的行为,因此归结为使您的用户能够获取他们需要的数据所需的内容。我不能告诉你如何让它以与在 Netware 下完全相同的方式工作,但我可以提供一些关于如何避免创建可能会回来咬你的东西的提示。
在这种情况下,我的目标是使结构尽可能简单。将“auditreports”文件夹拆分为单独的组文件夹将是我的第一步。从技术上讲,没有真正的理由这样做,它可以作为具有正确权限的子文件夹正常工作,但从保持您的房子可管理的角度来看,它使事情变得更容易。
接下来我每次都将 UNC 放入组文件夹中,放入 AD 中的组描述中。这样,您可以编写一个登录脚本来读取用户所属的组,提取描述属性,并将驱动器映射到它。我不确定您的帖子中是否有 AD,但是拥有一个您永远不必更新的登录脚本可以节省大量的管理开销。如果你可以在你的环境中做到这一点,那就去做吧。
最后,回到我的第一点,带着你的 Netware 帽子来进行 Windows 文件共享并不是一个好主意。它们是不同的操作系统,只是工作方式不同。在一个理想的世界中,您只需迁移,就用户而言,绝对不会有任何改变,但有时您只需打破这些鸡蛋即可制作该煎蛋卷。