我在 NTFS 文件系统上有一个巨大的目录 (即包含数千万或数亿后代节点的顶级目录,文件节点可能平均大约三级深),我需要更改其权限。特别是,我需要授予新用户(或组)对目录树中绝对所有内容的只读访问权限。
最明显的做法是在 Windows 资源管理器中右键单击顶级目录并转到目录属性窗口的安全选项卡。然而,当尝试明显的事情时,Windows 资源管理器似乎很兴奋地递归遍历整个目录树并尝试修改树中每个节点的权限。对于这么大的目录,这是非常低效的!
没有这种递归下降,任何人都可以提供更改权限的任何提示吗?我需要单击 GUI 中的特定内容吗?我需要使用命令行工具吗?这可能是以前的系统管理员对该目录中的权限做了一些奇怪的事情的结果吗?
我还需要启用网络共享并让用户/组通过网络挂载目录。还没有尝试过,所以我不知道当我尝试启用共享时是否会有类似的蠕虫。
如果重要,这在 Windows 2008 Server 上。
编辑:人们是对的,向域组而不是特定帐户授予权限可能更有意义,所以我在上面已经注意到这一点(这就是我正在做的事情。我不知道为什么我特别问关于在原始问题中添加用户。抱歉草率)。但当然,将组添加到文件夹的权限列表并不比添加用户快(现有组均未分配只读权限)。
如果您希望用户对某个文件夹和所有子文件夹具有读取权限,则还必须更改子文件夹的权限。听起来继承已经设置好了,你只是不想等待这个继承传播到所有的子对象。除了等待之外,您唯一能做的就是将用户添加到具有适当权限的现有组中,假设存在这样的组。
没有快速的方法可以做到这一点。Explorer 将愉快地工作几个小时(几天?)将新权限应用于每个文件和文件夹(如果设置了继承)。
启用共享要容易得多,用户至少需要共享的读取权限。底层的 NTFS 权限将决定用户实际可以做什么。请注意,如果共享权限是只读的,那么即使 NTFS 安全设置为修改 (r/w),这也是最大访问权限。
在这种情况下,不需要弄乱 NTFS 权限。
只需在顶级目录中创建一个共享,然后将用户或组添加到具有只读(或者如果您想要写入)权限的共享。
即使每个人都对顶级目录具有完全控制 NTFS 权限,也会使用最严格的权限(共享或 NTFS)。
您确实应该考虑创建一个本地或域组并在顶级目录上设置它的权限,然后您只需根据需要将用户添加到组中。
根据您的用例,在紧急情况下,您可以设置权限然后取消。
我需要向包含数百万个文件的高级目录添加特定权限,这需要一段时间。在我的特殊情况下,在结构的更深处有一个特定的目录,我需要尽快添加权限,等待很长时间是不可接受的选择。我可以通过首先向所需文件夹添加特定权限来克服这个问题,即使这也需要很长时间才能传播,我只是在它开始后单击“取消”。这样做会警告您,您将使权限处于不一致的状态,但它确实使我需要的一个目录具有适当的权限。然后我去了更高级别的目录并在那里设置权限并让它去......
诀窍是“取消”不会撤消它已经做过的事情,它只会停止传播。