Access control entries (ACEs)

An ACE is an entry in an access control list (ACL) that specifies, for a group or a user, access permissions to a file or folder and the rules of inheritance.

An ACE contains the following fields:

Explicit and inherited ACEs

The Server app supports two types of ACEs:

Note:  Inherited ACEs cannot be edited unless you make them explicit.

Understand inheritance

ACL inheritance lets you specify how permissions pass from a folder to its descendants.

The Apple ACL inheritance model

The Apple ACL inheritance model defines four options that you select or deselect in the Server app to control the application of ACEs (in other words, how to propagate permissions through a folder hierarchy):

Inheritance option

Description

Apply to this folder

Apply Administration, Read, and Write permissions to this folder.

Apply to child folders.

Apply permissions to subfolders.

Apply to child files

Apply permissions to the files in this folder

Apply to all descendants

If you want an ACE to apply to all descendants without exception, you must select the “Apply to child folders” and “Apply to child files” options in addition to this option.

OS X propagates ACL permissions at two well-defined times:

The following figure shows how the Server app propagates two ACEs (managers and design_team) after ACE creation. Bold text represents an explicit ACE and regular text represents an inherited ACE.

Diagram shows Jupiter folder has explicit “managers” ACL entry, which is inherited by all its descendant folders and files. Jupiter’s gread-grandchild folder also has “lander team” ACL entry, which its child inherits. Another child folder of Jupiter has “design team” ACL entry, which its child inherits.

ACL inheritance combination

When you set inheritance options for an ACE in the Server app, you can choose from 12 unique inheritance combinations for propagating ACL permissions.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this child folder checkbox Apply to child files

Apply to this child folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder blue. Child folder and file white. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this child folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder blue. Child folder blue. Child file white. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this child folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder blue. Child folder white. Child file blue. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder blue. Child folder and file blue. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this child folder checkbox Apply to child files

Apply to this folder checkbox Apply to all descendants

Root folder blue. Child folder blue. Child file white. Grandchild folder blue. Grandchild file white.

Inheritance checkbox Inheritance

Apply to this folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this folder checkbox Apply to all descendants

Root folder blue. Child folder and file blue. Grandchild folder and file blue.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this child folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder white. Child folder blue. Child file white. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this child folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder white. Child folder white. Child file blue. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder white. Child folder and file blue. Grandchild folder and file white.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this child folder checkbox Apply to child files

Apply to this folder checkbox Apply to all descendants

Root folder white. Child folder blue. Child file white. Grandchild folder blue. Grandchild file white.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this folder checkbox Apply to child folders

Apply to this folder checkbox Apply to child files

Apply to this folder checkbox Apply to all descendants

Root folder white. Child folder and file blue. Grandchild folder and file blue.

Inheritance checkbox Inheritance

Apply to this child folder checkbox Apply to this folder

Apply to this child folder checkbox Apply to child folders

Apply to this child folder checkbox Apply to child files

Apply to this child folder checkbox Apply to all descendants

Root folder white. Child folder and file white. Grandchild folder and file white.

ACL permission propagation

The Server app lets you force the propagation of ACLs. Although propagation is done automatically by the Server app, there are cases when you might want to manually propagate permissions:

For more information about how to manually propagate permissions, see Propagate access permissions.

Rules of precedence

OS X uses the following rules to control access to files and folders:

OS X evaluates ACEs in the ACL to determine a user’s access. If ACEs are present for the user in the ACL, the user is granted or denied access. If no ACEs are present for the user in the ACL, OS X evaluates the standard POSIX permissions defined for the file or folder to grant or deny access.

See also
Access control lists (ACLs)
Permissions in practice