# Basic Linux ACL(Access Control List) ## Install (Ubunutu/Debian Based) ```bash= sudo apt-get install acl ``` **Note** : ```facl``` should come by default with the **OS**, if not install by running the above. ## Getting Information ```bash= getfacl /path/to/file ``` ## Example : * Run ```getfacl go.mod``` * Output : ``` # file: go.mod // Filename # owner: a // Owner # group: a // Group user::rw- // user can read and write group::rw- // group can read and write other::r-- // others can read only ``` ## Changing File Permission ### User ``` setfacl -m "u:user:permissions" /path/to/file ``` ## Example : * Run ```setfacl -m u:a:rwx go.mod``` * Run ```getfacl go.mod``` * Output : ``` # file: go.mod # owner: a # group: a user::rw- user:a:rwx // new changed -> user can read,write and execute. group::rw- mask::rwx other::r-- ``` ### Group ``` setfacl -m "g:group:permissions" /path/to/file ``` ### Inherit From It's Directory ``` setfacl -dm "entry" /path/to/dir ``` ### Removing/Reversing ACL ``` setfacl -b /path/to/file ``` * Run ```setfacl -b go.mod``` * Run ```getfacl go.mod``` * Output : ``` # file: go.mod // Filename # owner: a // Owner # group: a // Group user::rw- // user can read and write group::rw- // group can read and write other::r-- // others can read only ``` ## Reference 1. Made notes Following [this](https://www.geeksforgeeks.org/access-control-listsacl-linux/) link, check for more. 2. [Beyond Permissions: Linux ACLs ](https://serversforhackers.com/c/beyond-permissions-linux-acls) 3. [POSIX ACLs in Linux](https://www.theurbanpenguin.com/posix-acls-in-linux/) 4. [Access Control Lists on Linux Explained](https://devconnected.com/access-control-lists-on-linux-explained/) 5. [Linux ACLs](https://serversforhackers.com/c/linux-acls) 6. [Setting Up ACL](https://www.learnitguide.net/2015/12/setting-access-control-lists-on-linux.html)