为什么 Windows 在更改父级 ACL 时会处理所有 NTFS 子对象?

为什么 Windows 在更改父级 ACL 时会处理所有 NTFS 子对象?

为什么 Windows 在更改父级 ACL 时会处理所有 NTFS 子对象?

如果我选中了“替换所有子对象权限...”框,我就会期待这种行为,但即使未选中该框,Windows 也会处理所有子项。

答案1

在 Windows 中,文件权限不是动态继承的。也就是说,当尝试打开文件时,Windows 只会查看该文件的 ACL,而不会查看包含该文件的树中的目录的 ACL。这意味着当您更改目录的 ACL 时,Windows 必须立即更新受影响目录中所有文件和子目录的权限。

在 Windows 中继承ACL 中的设置并不表示任何形式的动态继承。它只是一个标志,表示当修改父目录的 ACL 时,树中设置了继承标志的所有文件和子目录也必须更新。

那些年纪足够大、能够记得 Novell NetWare 的人会记得这是与 NetWare 的一大区别,因为在 NetWare 中权限继承是(曾经是?)动态的。当时关于哪种方法更好有很多争论,尽管历史已经使这个问题变得毫无意义。动态 ACL 要求操作系统在尝试打开文件时检查每个父目录的 ACL,但更改 ACL 很快。在 Windows 中,打开文件只需要检查一个 ACL,但正如您所发现的,这意味着更改目录 ACL 可能会很慢。

答案2

任何配置为从父对象继承权限的子对象都需要进行处理。子对象上明确定义的权限不受影响。

“替换所有子对象的权限”选项不仅会将权限传播给所有子对象,而且还会删除和替换所有子对象上任何明确定义的权限。

答案3

默认情况下,子文件夹会从父文件夹继承权限。假设您在父文件夹上添加/修改权限时的默认范围(此文件夹、子文件夹和文件),则所有子文件夹都将更新以反映父文件夹的权限更改。

您所指的复选框是“一次性”操作,它将删除所有子文件夹上所有明确定义的权限,并用从父文件夹继承的权限替换它们,并将重新启用子文件夹上的权限继承。

相关内容