1. Create Directories Commands used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ mkdir Test01         
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ mkdir Test02
                           


  1. Create Users Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo useradd dinujaya                      
[sudo] password for neo: 
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo useradd Neo     
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo useradd Trinity
 

verify the users are created by checking /etc/passwd

┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ cat /etc/passwd            
tharushka:x:1001:1001::/home/tharushka:/bin/sh
dinujaya:x:1002:1002::/home/dinujaya:/bin/sh
Neo:x:1003:1003::/home/Neo:/bin/sh
Trinity:x:1004:1004::/home/Trinity:/bin/sh

  1. Set the file ACL of each user over each directory Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:dinujaya:rw Test01
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:dinujaya:r Test02 
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:Neo:rx Test01
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:Neo:rwx Test02
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:Trinity:0 Test01  
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m u:Trinity:rwx Test02
 

Assigned permissions:

  • dinujaya: Read and write on dir1, read-only on dir2
  • Neo: Execute and read on dir1, read, write, and execute on dir2
  • Trinity: No permissions on dir1, full permissions on dir2

  1. Check the given permissions of both directories Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ getfacl Test01                                                     
# file: Test01
# owner: neo
# group: neo
user::rwx
user:dinujaya:rw-
user:Neo:r-x
user:Trinity:---
group::rwx
mask::rwx
other::r-x
 
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ getfacl Test02
# file: Test02
# owner: neo
# group: neo
user::rwx
user:dinujaya:r--
user:Neo:rwx
user:Trinity:rwx
group::rwx
mask::rwx
other::r-x
 


  1. Create Groups Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo groupadd black            
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo groupadd white
 


  1. Add some users to the groups you have created Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo gpasswd -a dinujaya black
Adding user dinujaya to group black
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo gpasswd -a Neo White     
gpasswd: group 'White' does not exist in /etc/group
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo gpasswd -a Neo white
Adding user Neo to group white
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ sudo gpasswd -a Trinity black
 


  1. Check if the users are added to the groups Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ groups dinujaya                                                    
dinujaya : dinujaya black
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ groups Neo     
Neo : Neo white
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ groups Trinity  
Trinity : Trinity black
 


  1. Set the file ACL of each group over the directories Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m g:black:rw Test01   
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m g:black:r Test02 
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m g:white:rw Test01
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -m g:white:rw Test02
 


  1. Check the ACL of your directories and see if your group permissions are done. Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ getfacl Test01
# file: Test01
# owner: neo
# group: neo
user::rwx
user:dinujaya:rw-
user:Neo:r-x
user:Trinity:---
group::rwx
group:black:rw-
group:white:rw-
mask::rwx
other::r-x
 
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ getfacl Test02
# file: Test02
# owner: neo
# group: neo
user::rwx
user:dinujaya:r--
user:Neo:rwx
user:Trinity:rwx
group::rwx
group:black:r--
group:white:rw-
mask::rwx
other::r-x
 


  1. Cancel some permissions given to a user or a group over a directory Commands Used :
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -x u:dinujaya Test01
                                                                             
┌──(neo㉿0xneoxploit)-[~/Desktop]
└─$ setfacl -x g:white Test02