ACL 和 ACE

如果 Windows 对象没有 自由访问控制列表 (DACL) ,则系统允许所有人完全访问它。 如果对象具有 DACL,则系统仅允许在 DACL 中) 访问控制 (ACE 显式允许的访问。 如果 DACL 中没有 ACE,则系统不允许任何人访问。 同样,如果 DACL 的 ACE 允许访问有限的一组用户或组,则系统会隐式拒绝访问未包含在 ACE 中的所有受托人。

在大多数情况下,可以使用允许访问的 ACE 来控制对对象的访问;不需要显式拒绝对对象的访问。 当 ACE 允许访问组,而你想要拒绝对组成员的访问时,则例外。 为此,请将用户的拒绝访问 ACE 置于 DACL 中组允许访问的 ACE 之前。 请注意, ACE 的顺序 很重要,因为系统会按顺序读取 ACE,直到授予或拒绝访问权限。 必须首先显示用户的拒绝访问 ACE;否则,当系统读取组的访问允许的 ACE 时,它将向受限用户授予访问权限。

下图显示了拒绝一个用户访问并授予对两个组的访问权限的 DACL。 组 A 的成员通过累积组 A 所允许的权限和对所有人的允许权限来获取读取、写入和执行访问权限。 例外是 Andrew,尽管他是“每个人”组的成员,但遭到访问被拒绝的 ACE 拒绝访问。

基于组成员身份授予不同访问权限的 dacl