任何处理过文件服务器权限的人都知道,NTFS 有一个有趣的设计特性/缺陷,称为移动/复制问题。
如本 MS 知识库文章中所述,如果文件夹或文件被移动并且源和目标位于同一 NTFS 卷上,则文件夹或文件的权限不会自动从父级继承。如果复制文件夹或源和目标位于不同的卷上,则会继承权限。
这是一个简单的例子:
您在同一个 NTFS 卷上有两个共享文件夹,分别称为“Technicians”和“Managers”。Technicians 组对 Technicians 文件夹具有 RW 访问权限,Managers 组对“Managers”文件夹具有 RW 访问权限。如果有人可以访问这两个文件夹,并且他们将一个子文件夹从“Managers”文件夹移动到“Technicians”文件夹,则移动的文件夹仍然只能由“Managers”组中的用户访问。“技术人员”组无法访问子文件夹,即使它位于“技术人员”文件夹下,并且应该从顶部继承权限。
正如您可以想象的那样,这会导致解决这些最终用户问题的支持电话、票证和浪费周期,更不用说如果用户经常在不同的安全文件夹/区域之间移动文件夹,您最终可能会遇到的权限嵌套。相同的音量。
问题是:
解决此 NTFS 设计缺陷的最佳方法是什么?您如何在您的环境中处理它?
我知道链接的知识库文章讨论了一些注册表项来更改 Windows 资源管理器的默认行为,但它们是客户端的,并且要求用户能够更改权限,如果你在大多数环境中我认为这是一个非首发者希望控制您的文件服务器权限(以及您作为系统管理员的理智)。
我的方法是不使用文件/目录级别的文件权限;使用文件共享级别权限,并将整个服务器文件系统数据驱动器设置为“所有人完全控制”(这变得没有实际意义)。
多年来(10+),我发现 NTFS 权限更复杂并导致更多错误。如果权限设置错误,或者继承被破坏,你就会暴露数据并且很难找到和看到它。另外,正如您所说,您会遇到移动/复制问题。
必须使用目录/文件级别 ACL 的地方;除了定期进行健康检查外,我没有其他解决方案。
好吧,这并不是一个真正的缺陷。这个在移动文件时处理权限的规则至少从 NT3.1 的 beta 2 开始就已经存在(尽管显然不是继承,因为它只是在 Windows 2000 中添加的)。它与 Windows 的任何功能一样广为人知。我非常同情你的观点,因为我们当中可能很少有人在某个阶段没有被这件事烧毁。但这是系统管理员很快学会的东西。
JR
我们从 NT 3.51 开始就一直在使用 NTFS,虽然我们已经看到了这个“问题”(几乎每个人都有),但它并没有给我们带来太多麻烦:
我能想到的解决方法:
免责声明 - 我来自 unix 背景(并且已经实现了最后一个来修复不同的权限缺陷 - 感觉很恶心,但确实有效),所以可能会有更好的修复。
当以管理员身份移动时,我使用 xcopy /s/e/c/h/r/k/y - 除了文件所有权和 ACL 之外的所有内容,这意味着 ACL 继承会自动启动。从来没有真正需要处理用户的情况虽然搬了东西。
我使用组策略/安全策略/文件系统来跟踪复杂的权限。(切勿在策略中使用“替换权限”)。
安排 CACLS 在夜间重置所有权限,然后执行 gpupdate /force 以重新应用策略中的权限。奇迹般有效。
从 Windows 7(或者可能是 Windows Vista)开始,如果文件夹或文件被移动并且源和目标位于同一 NTFS 卷上 - 如果文件或文件夹正在通过资源管理器复制,则文件夹或文件的权限会从父级继承。在早期的操作系统中,您可以使用远程管理器 - 它允许从目标启用权限继承(以及大量其他功能)。虽然 Far 对一般用户来说似乎并不友好。
一个非常简单的解决方法是压缩文件并将其解压缩到目标目录。