ACL

Why
ACL are important because it is a lower level interface that we use to implement access control matrix that is widely used in commercial operating systems

Advantages

 * Good for systems in which users manage their own security
 * Good for systems in which protection is more data oriented

Disadvantages

 * Bad for systems in which there is a large, constantly changing, set of users
 * Bad for runtime permissions checking because the OS has to check the ACL every time a new file is opened
 * Bad for when we need to check all files that the user has access to, in the case we must remove a user from our system, we will need to know which files he had access to so he cannot tamper with them after he is removed

What
ACL stands for Access Control List and it has us keep, for each file, a list of users and their permissions. This is basically spreading out the access control matrix columns.

How
UNIX

In UNIX based environments, ACL are not arbitrarily long lists. This prevents our lists from becoming unmanagably long. Instead, they are implemented with the rwx flags on three fields (Owner, Group, World/Global).

The real format goes like this

(directory flag) (owner triplet) (group triplet) (global triplet) (owner name) (group name)

Where the triplet order is rwx