Access Control List (ACL): A Guide for File Permissions

Understanding file permissions is crucial for system administration and security. The Access Control List (ACL) provides a more fine-grained permission model compared to traditional Unix file permissions. Let’s dive into how you can use ACLs to set specific user permissions.

1. Regular Permissions vs. ACL

Regular permissions allow you to set general permissions using the chmod command. For instance:

chmod u=rwx,g=rx,o=rx dir

This command sets the directory ‘dir’ with read, write, and execute permissions for the user, read and execute for the group, and read and execute for others.

ACL permissions, on the other hand, allow you to set permissions for specific users. For example:

setfacl -m u:user:rwx dir

This grants the user ‘user’ read, write, and execute permissions on the directory ‘dir’.

2. Modifying ACL

You can modify existing user access using the -m option. For instance:

setfacl -m u:user:rw- dir

This modifies ‘user’s’ permission to read and write only on the directory ‘dir’.

3. Removing Specific User’s ACL

To remove specific user access, use the -x option:

setfacl -x u:user dir

This removes all access rights from ‘user’ on the directory ‘dir’.

4. Checking ACL Entries

Use the getfacl command to check set ACL entries:

$ getfacl dir
# file: dir
# owner: me
# group: me
user::rwx
group::r-x
other::r-x

This output shows that the owner (‘me’) has full access, while the group (‘me’) has read and execute access, along with others.

By mastering these commands, you can ensure that your files are accessed only by authorized users, enhancing your system’s security.