我对网络文件系统上的ACL有疑问。
基本上,我想在顶级文件夹对象上设置权限,该对象下面可能有100,000多个文件和文件夹对象。我希望权限可以通过所有子文件夹和子文件继承(IE'适用于文件,文件夹和子文件夹' true )。
我不想删除任何现有的可继承权限(IE'使用此对象的可继承权限替换所有子对象权限' false )。
因此,当我运行Set-ACL,SetACL.exe,XCACLS.vbs,甚至使用Windows GUI时,该过程需要很长时间才能完成 - 显然是由于子目录的大小。
我现在习惯了,但是:
我想知道 - 为什么 完全 是这个?
在一天结束时,我不是只在一个文件夹对象上写一个ACE吗?
我假设如果你访问了子文件夹/文件对象,它会检查它的显式ACE以查看你是否有权限,如果你没有权限,它会检查任何可继承的权限(来自父文件夹)对象)可能会让你访问。
那么,设置可继承权限是否也会导致将新的单个ACE写入每个子文件和文件夹,即使您在技术上只在顶级设置一个ACE?
是否有任何方式在顶层设置ACE而没有命令进入和枚举整个子目录?我希望在大量的文件和文件夹上快速有效地完成这项工作。
我希望这是有道理的。期待任何建议。
里斯。
答案 0 :(得分:2)
在标志位字段(more info)中的安全描述符的位掩码中,在文件夹/文件级别设置继承权限(如显式)。这就是为什么在父文件夹级别设置传播给子(继承)的权限可能很长的原因取决于受影响的子项数。
基于此,答案是否定的:您无法在顶层设置ACE,也无法通过整个子目录进行枚举。
您可以测试在所有子节点上以编程方式设置显式acl是否比继承过程更快。