getfacl: command not found

An access control list (ACL) is a list of permissions attached to an object. ACLs can be used for situations where the traditional file permission concept does not suffice. ACLs enable you to assign permissions to individual users or groups even if these do not correspond to the object’s owner or group.

For example, members of two department groups may need different levels of access to the same resource. Group 1 might need r/w/x to a directory, whereas Group 2 only needs r/x access. By using ACLs, you are able to grant different levels of access to different users, groups, and even processes. ACLs enable a more granular level of control.

The getfacl command is used to retrieve the ACLs of files and directories. The basic output format of the getfacl command shows metadata about the object including its owner, its group, any SUID/SGID/sticky bit flags set, the standard permissions associated with the object, and the individual permission entries for users and groups.

If you want to see what are the ACL associated with the file, we can make use of the getfacl command. The syntax is quite simple:

# getfacl filename

Which gives the output as:

# file: filename
# owner: geek
# group: geek
user::rw-
user:andy:r--
user:bob:r--
user:james:rwx
group::r--
mask::rwx
other::r--

If you encounter below error while executing the getfacl command:

getfacl: command not found

you may try installing the below package as per your choice of distribution:

Distribution Command
Debian apt-get install acl
Ubuntu apt-get install acl
Alpine apk add acl
Arch Linux pacman -S acl
Kali Linux apt-get install acl
CentOS yum install acl
Fedora dnf install acl
Raspbian apt-get install acl

getfacl Command Examples

1. To get the ACL’s of a file:

# getfacl /tmp/file.txt 

2. To display the file access control list:

# getfacl -a /tmp/file.txt
# getfacl --access /tmp/file.txt 

3. To display the default access control list:

# getfacl -d /tmp/file.txt
# getfacl --default /tmp/file.txt 

4. To avoid displaying comment header:

# getfacl -c /tmp/file.txt
# getfacl --omit-header /tmp/file.txt 

5. To Print all effective rights comments:

# getfacl -e /tmp/file.txt
# getfacl --all-effective /tmp/file.txt 

6. To avoid printing effective rights:

# getfacl -E /tmp/file.txt
# getfacl --no-effective /tmp/file.txt 

7. To skip files that only have the base ACL entries:

# getfacl -s /tmp/file.txt
# getfacl --skip-base /tmp/file.txt 

8. To list the ACL’s recursively:

# getfacl -R /tmp
# getfacl --recursive /tmp 

9. To follow the symbolic links:

# getfacl -L /tmp/file.txt
# getfacl --logical /tmp/file.txt 

10. To avoid following the symbolic links:

# getfacl -P /tmp/file.txt
# getfacl --physical /tmp/file.txt 

11. To get the tabular output format:

# getfacl -t /tmp/file.txt
# getfacl --tabular /tmp/file.txt 

12. Do not strip leading slash characters:

# getfacl -p /tmp/file.txt
# getfacl --absolute-names /tmp/file.txt 

13. To list the numeric user and group IDs:

# getfacl -n /tmp/file.txt
# getfacl --numeric /tmp/file.txt 

14. To get the version of the getfacl:

# getfacl -v
# getfacl -version 

15. To get the help for getfacl:

# getfacl -h
# getfacl --help 
Related Post