Vad är ACL?
Access control list (ACL) är en ytterligare, mer flexibel behörighetsmekanism för filsystem. Den är utformad för att hjälpa till med UNIX-filbehörigheter. ACL gör det möjligt att ge behörigheter för alla användare eller grupper till alla diskresurser.
Användning av ACL :
Tänk på ett scenario där en viss användare inte är medlem i en grupp som skapats av dig, men där du ändå vill ge läs- eller skrivbehörighet, hur kan du göra det utan att göra användaren till medlem i en grupp, här kommer Access Control Lists, ACL, in i bilden, som hjälper oss att göra detta trick.
Basiskt sett används ACL:s för att skapa en flexibel behörighetsmekanism i Linux.
Från Linux man pages används ACL:er för att definiera mer finkorniga diskretionära åtkomsträttigheter för filer och kataloger.
setfacl och getfacl används för att ställa in ACL:er respektive visa ACL:er.
Till exempel :
getfacl test/declarations.h
Output:
# file: test/declarations.h# owner: mandeep# group: mandeepuser::rw-group::rw-other::r--
Lista över kommandon för inställning av ACL :
1) To add permission for usersetfacl -m "u:user:permissions" /path/to/file2) To add permissions for a groupsetfacl -m "g:group:permissions" /path/to/file 3) To allow all files or directories to inherit ACL entries from the directory it is withinsetfacl -dm "entry" /path/to/dir4) To remove a specific entrysetfacl -x "entry" /path/to/file5) To remove all entriessetfacl -b path/to/file
Till exempel :
setfacl -m u:mandeep:rwx test/declarations.h
Modifiera ACL med hjälp av setfacl :
För att lägga till behörigheter för en användare (user är antingen användarnamn eller ID):
# setfacl -m "u:user:permissions"
För att lägga till behörigheter för en grupp (grupp är antingen gruppnamn eller ID):
# setfacl -m "g:group:permissions"
För att tillåta att alla filer eller kataloger ärver ACL-poster från katalogen de ligger i:
# setfacl -dm "entry"
Exempel :
setfacl -m u:mandeep:r-x test/declarations.h
Se nedanstående bild för utdata :
setfacl och getfacl
Se ACL :
För att visa behörigheter :
# getfacl filename
Observera skillnaden mellan utdata från getfacl-kommandot före och efter att du har ställt in ACL-behörigheter med setfacl-kommandot.
Det finns en extra rad som lagts till för användaren mandeep som är markerad i bilden ovan.
Utmatning:
ändra behörigheter
Ovanstående kommando ändrar behörigheter från rwx till r-x
För att ta bort ACL :
Om du vill ta bort de inställda ACL-behörigheterna använder du kommandot setfacl med -b-alternativet.
Till exempel :
remove set permissions
Om du jämför utdata från getfacl-kommandot före och efter att du har använt setfacl-kommandot med -b-alternativet, kan du konstatera att det inte finns någon särskild post för användaren mandeep i den senare utdata.
Du kan också kontrollera om det finns några extra rättigheter som har fastställts genom ACL med hjälp av kommandot ls.
check set acl with ls
Observera den första kommandoutgången i bilden, det finns ett extra ”+”-tecken efter behörigheter som -rw-rwxr-+, detta indikerar att det finns extra ACL-behörigheter som du kan kontrollera med kommandot getfacl.
Användning av standard-ACL :
Standard-ACL är en särskild typ av behörighet som tilldelas en katalog, som inte ändrar behörigheterna för själva katalogen, men som gör att specificerade ACL:er sätts som standard på alla filer som skapas i katalogen. Låt oss demonstrera det: först ska vi skapa en katalog och tilldela standard ACL till den genom att använda alternativet -d:
$ mkdir test && setfacl -d -m u:dummy:rw test