Hvad er ACL?
Access control list (ACL) giver en ekstra, mere fleksibel tilladelsesmekanisme for filsystemer. Den er designet til at hjælpe med UNIX-filtilladelser. ACL giver dig mulighed for at give tilladelser til enhver bruger eller gruppe til enhver diskressource.
Brug af ACL :
Tænk på et scenarie, hvor en bestemt bruger ikke er medlem af en gruppe, som du har oprettet, men hvor du stadig ønsker at give nogle læse- eller skriveadgang, hvordan kan du gøre det uden at gøre brugeren til medlem af en gruppe, her kommer i billedet Access Control Lists, ACL hjælper os med at udføre dette trick.
Grundlæggende bruges ACL’er til at lave en fleksibel tilladelsesmekanisme i Linux.
Fra Linux’ man-sider bruges ACL’er til at definere mere finkornede diskretionære adgangsrettigheder til filer og mapper.
Setfacl og getfacl bruges til at opsætte henholdsvis ACL og vise ACL’er.
For eksempel :
getfacl test/declarations.h
Output:
# file: test/declarations.h# owner: mandeep# group: mandeepuser::rw-group::rw-other::r--
Liste over kommandoer til opsætning af 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
For eksempel :
setfacl -m u:mandeep:rwx test/declarations.h
Modificering af ACL ved hjælp af setfacl :
For at tilføje tilladelser til en bruger (bruger er enten brugernavn eller ID):
# setfacl -m "u:user:permissions"
For at tilføje tilladelser for en gruppe (gruppe er enten gruppens navn eller ID):
# setfacl -m "g:group:permissions"
For at tillade, at alle filer eller mapper arver ACL-poster fra den mappe, de befinder sig i:
# setfacl -dm "entry"
Eksempel :
setfacl -m u:mandeep:r-x test/declarations.h
Se nedenstående billede for output :
setfacl og getfacl
Se ACL :
For at vise tilladelser :
# getfacl filename
Opmærksomheden henledes på forskellen mellem output af getfacl-kommandoen før og efter opsætning af ACL-tilladelser ved hjælp af setfacl-kommandoen.
Der er tilføjet en ekstra linje for brugeren mandeep, som er fremhævet i billedet ovenfor.
Output:
ændre tilladelser
Overstående kommando ændrer tilladelser fra rwx til r-x
Fjernelse af ACL :
Hvis du ønsker at fjerne de indstillede ACL-tilladelser, skal du bruge kommandoen setfacl med indstillingen -b.
For eksempel :
remove set permissions
Hvis du sammenligner output af getfacl-kommandoen før og efter brug af setfacl-kommandoen med -b-indstillingen, kan du observere, at der ikke er nogen særlig post for brugeren mandeep i det senere output.
Du kan også kontrollere, om der er indstillet ekstra tilladelser via ACL ved hjælp af ls-kommandoen.
check set acl with ls
Observer den første kommando output i billedet, der er ekstra “+” tegn efter tilladelser som -rw-rwxr-+, dette indikerer, at der er ekstra ACL tilladelser sat, som du kan kontrollere ved hjælp af getfacl kommando.
Brug af standard ACL :
Den standard ACL er en specifik type tilladelse, der er tildelt en mappe, som ikke ændrer tilladelserne for selve mappen, men som gør, at specificerede ACL’er som standard er indstillet på alle de filer, der oprettes i den. Lad os demonstrere det : først skal vi oprette en mappe og tildele standard ACL til den ved hjælp af -d-indstillingen:
$ mkdir test && setfacl -d -m u:dummy:rw test