DACL 和 ACE

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

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

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

dacl that grants differing access rights based on group membership