Access Control Lists (ACL) in the DTR
Use
An access control list (ACL) defines the privileges principals (these can be an individual user or a user group) have for a particular resource. Technically speaking, an ACL consists of access control entities or ACEs. It also assigns one or more privileges to a principal.
The figure below shows the class diagram of the ACL:
Rules
It is not necessary to define ACLs for all resources. On the other hand, it is possible to define different ACEs for one resource that exclude one another. To solve these conflicts, the permissions are interpreted according to a set of rules that independently apply to all privileges.
The resource path is used to determine the permissions. The permissions do not need to be defined for all resources: a resource of a child hierarchy level inherits all permissions granted to a parent folder, unless permissions are granted to the child resource directly.
Rule 1 - "final" Before All "Children"
A final ACL annuls all other ACLs that have been defined for the child resource.
Rule 2 - "ignore inheritance"
This rule allows you to use the attribute "ignore inheritance" to interrupt the inheritance hierarchy. A resource for which an ACL labeled as "ignore inheritance" is defined does not inherit any authorizations from superior folders.
Rule 3 - "Child" Before "Parent"
This rule allows you to refine permissions for child resources.
To the directory structure /projects/java/dev/.../secret/.../confidential, you want to grant the following permissions:
All members of group Developers can read everything below the /projects directory, except the directory secret.
All members of group Developers have write access to all resources below the dev directory, except to the subtree below secret.
Only user User07 can access the subtree below confidential (read and write). But not even this user can access the resources between secret and confidential if he or she is a member of group Developers.
Rule 4 - "user" before "group"
This rule defines the priority for contradicting ACEs defined for the same resource (because this rule is defined after rule 3, it can affect only the same resource). This rule gives the user entry priority over the group entry.
Rule 5 - "deny" before "grant"
If for a privilege there is a grant as well as a deny permission, then deny takes priority. Because this rule is applied after rule 4, it can affect only colliding permissions for the same user or for user groups with a common member.