如何解决 NTFS 移动/复制设计缺陷?

Dav*_*her 32 filesystems permissions ntfs access-control-list

任何处理过文件服务器权限的人都知道,NTFS 有一个有趣的设计特性/缺陷,称为移动/复制问题。

正如这篇 MS KB 文章中所述,如果文件夹或文件被移动并且源和目标位于同一个 NTFS 卷上,则该文件夹或文件的权限不会自动从父级继承。如果文件夹被复制或者源和目标位于不同的卷上,则权限将被继承。

这是一个快速示例:

您在同一个 NTFS 卷上有两个共享文件夹,名为“Technicians”和“Managers”。Technicians 组对 Technicians 文件夹具有 RW 访问权限,Managers 组对“Managers”文件夹具有 RW 访问权限。如果有人对两者都具有访问权限,并且他们将子文件夹从“Managers”文件夹移动到“Technicians”文件夹,则移动的文件夹仍然只能由“Managers”组中的用户访问。“技术人员”组无法访问子文件夹,即使它位于“技术人员”文件夹下并且应该从顶部继承权限。

可以想象,这会导致解决这些最终用户问题的支持电话、票证和浪费的周期,更不用说如果用户经常在不同的安全文件夹/区域之间移动文件夹,您最终可能会遇到的大量权限。相同的音量。

问题是:

解决此 NTFS 设计缺陷的最佳方法是什么,您如何在您的环境中处理它?

我知道链接的 KB 文章谈到了一些注册表项来更改 Windows 资源管理器的默认行为,但它们是客户端,并且要求用户能够更改权限,我认为在大多数环境中,如果您想要控制您的文件服务器权限(以及您作为系统管理员的理智)。

小智 13

我的方法是不使用文件/目录级别的文件权限;使用文件共享级别权限,并将整个服务器文件系统数据驱动器设置为“所有人完全控制”(这变得没有实际意义)。

多年来(10 年以上),我发现 NTFS 权限更复杂并导致更多错误。如果权限设置错误,或者继承被破坏,你就会暴露数据并且很难找到和查看它。另外,正如您所说,您会遇到移动/复制问题。

必须使用目录/文件级 ACL 的地方;除了定期检查事物的健康状况之外,我知道没有其他解决方案。


Joh*_*nie 10

嗯,这不是一个真正的缺陷。移动文件时处理权限的规则至少从 NT3.1 的 beta 2 开始就已经存在(尽管显然不是继承,因为它只在 Windows 2000 中添加)。它与 Windows 的任何功能一样广为人知。我非常同情你的观点,因为我们中很少有人在某个阶段没有被这件事烧过。但这是系统管理员很快学会的东西。

JR

  • 我在 Raymond Chen 的博客上就此事与他争论过。微软“出售”NTFS 作为具有“继承权”的许可,然后当盔甲中的这个特殊缝隙被提出时就退缩了。通过在创建文件时将显式 ACE 放置到文件上,NTFS 在文件创建时具有权限继承。我会争辩说,只要文档和营销文献都在谈论他们的继承系统,就好像它是实时的一样,文档或代码都有问题。他们应该选择一个并修复它。 (7认同)
  • @renniej:AD 确实使用了真正的实时继承。Netware 文件系统很久以前就做到了。如果微软实施了 NTFS,它也可以做到。这就是“未走的路”。令我烦恼的是 Microsoft 文档 re:NTFS 和资源管理器“播放”就像继承是实时的(即谎言)。照原样告诉我们,或修复行为以与文档保持一致! (3认同)

War*_*ica 6

自 NT 3.51 以来,我们一直在使用 NTFS,尽管我们已经看到了这个“问题”(几乎每个人都遇到过),但并没有给我们带来太多麻烦:

  • 如果需要将文件从一个共享目录移动到另一个共享目录,我们总是告诉人们复制文件。“拖动时按住 CTRL 键并确保显示小 +”,这是一句常用语。
  • 我们的共享文件夹具有相当简单的结构,而且我们创建的共享文件夹不会经常在组之间交叉,因此人们更可能希望首先复制文件。
  • 我们主要在我们的“公共”空间中看到问题 - 每个人都可以读/写的文件夹,但这些目录大多是短暂的,所以当它们被清除时问题就会消失。