En introduksjon til tilgangskontrollister (ACL)

Hva er Access Control List (ACL) Kjøre Control List (ACL) gir en ekstra, mer fleksibel tillatelse mekanisme for filsystemer. ACL tillate deg å gi ulike nivåer av tilgang til filer og mapper for ulike brukere. Den er designet for å hjelpe til med UNIX filrettigheter. ACL tillater deg å gi tillatelser for alle brukere eller gruppe til alle platene ressurs.
Forutsetninger
bekrefte filsystem alternativer
Før du bruker ACL-er må vi først verifisere at vår filsystem har ACL alternativet aktiveres eller Deaktiver.
En vanlig måte å aktivere ACL-støtte på et filsystem er å legge til ACL alternativ til en filsystemer montere alternativer i /etc /fstab. Vi kan sjekke om det har blitt gjort på dette systemet ved hjelp av mount kommandoen. Nå åpner Terminal (Ctrl + Alt + T) og skriv følgende kommando

 sudo su 
 montere. | grep root 
 /dev /mapper /arbeidsstasjon-root på /type ext4 (rw, feil = remount-ro) I dette tilfellet ACL alternativet er ikke lagt, men det betyr ikke at vår filsystem har ikke ACL er aktivert . På de fleste distribusjoner standard filsystemer har ACL alternativet som en del av standardfeste. 
Nå kan du sjekke om dine filsystemer har ACL som en del av standardinnstillingene ved å bruke tune2fs kommandoen.
 tune2fs -l /dev /mapper /arbeidsstasjon-rootDefault montere alternativer: user_xattr acl 
Som du kan se på mitt testsystem standardmontering inneholde acl, i dette tilfellet min filsystemet vil støtte acl sin selv om jeg ikke spesifiserer det i løpet av mount behandle. Hvis filsystemet ikke har acl som standard mount alternativet, enn du kan legge den under mount prosessen enkelt ved å redigere fstab filen.
 sudo mcedit /etc /fstabSimply legge begrepet acl til monteringsalternativer som vist nedenfor 
Før:.
 /dev /mapper /arbeidsstasjon-root /ext4 feil = remount-ro 0 1After: 
 /dev /mapper /arbeidsstasjon-root /ext4 acl, feil = remount-ro 0 1Once din fstab filen er redigert du kan remontere filsystemet med mount kommandoen 
 mount -o remount /
 montere. | grep root 
 /dev /mapper /arbeidsstasjon-root på /type ext4 (rw, acl, feil = remount-ro) ACL Utilities 
Nå som filsystemet støtter ACL-er vi må sørge for at du har de ACL verktøy installert . Min testmaskin er en Ubuntu server installere så jeg vil bruke dpkg kommandoen
 dpkg --list. | grep acl 
 ii libacl1 2.2.51-5ubuntu1 Tilgangskontroll liste delt libraryInstall ACL 
 sudo apt-get install aclNow vi sjekke igjen, og det er installert 
 dpkg --list. | grep acl 
 ii ACL 2.2.51-5ubuntu1 Access Control List verktøy ii libacl1 2.2.51-5ubuntu1 Tilgangskontroll liste delte librarySetting og konfigurere ACL-er med getfacl og setfacl kommando 
Nå som vi har verktøyene installert vi kan begynne å bruke . den setfacl og getfacl kommandoer
Innstilling ACL-er med setfacl
Nå gå til katalogen
 cd /var /tmp /
 ls -la | grep appdir 
 drwxrwxr-x 2 root appgroup 4096 27 mai 10:45 appdirTo legge disse tillatelsene vil vi bruke setfacl kommandoen 
 setfacl -mg: testusers: r appdir /La oss bryte kommandoen ned litt . 
 -mThe m alternativet forteller setfacl å endre ACL liste for den angitte katalogen 
 g. testusers: rDette er faktisk tilgangskontrollisten som blir satt. Den første kolonnen er å spesifisere g for gruppen, er den andre kolonnen gruppenavnet som jeg ønsker tillatelsene til å bli satt på og den siste kolonnen er tillatelsene jeg ønsker at gruppen skal ha. I dette tilfellet lese tillatelse. 
 appdir /Dette er katalogen som jeg legger tillatelsene på. 
Kontrollere ACL liste med getfacl
Når du har satt den acl med setfacl det er sunn fornuft for å sjekke om det tok effekt, for å gjøre det må du bruke getfacl kommandoen
 getfacl appdir /Output 
 # fila. appdir /# eier: root # gruppe : appgroupuser :: rwx gruppe :: rwxgroup: testusers:. r - maskere :: rwxother :: r-xthe utgang getfacl er ganske selvforklarende, kan du se den regelen som vi lagt under standard gruppeoppføringen 
Eksempler av Bruksområder ACL

Fjerne alle ACL oppføringer fra en fil eller katalog

Sett testbrukere å ha lesetilgang til alle filene i en katalog

Sett de samme ACL endringer rekursivt

Sett samme ACL på alle nyopprettede filer automatisk

Sett testuser1 å ha lese, skrive og utføre tilgang til appuser1 katalogen

Sett alle brukere å ha lese, skrive og utføre tilgang til den delte katalogen

Fjern ACL for testuser1 på appuser1 Katalog Fjerne alle ACL oppføringer fra en fil eller katalog
Før vi begynner å rote med ACL-er i min katalog jeg vil tømme ut alle de ACL er det tidligere hadde. Å gjøre dette én etter én kan være litt av en smerte, det er en god ting setfacl kommandoen gir deg muligheten til å fjerne alle ACL er på en bestemt fil eller katalog. Dette kan gjøres ved hjelp av -b muligheten setfacl.
 setfacl -b appdir /
 getfacl appdirSet testusers å ha lesetilgang til alle filene i appdir katalogen 
Dette er en ganske grunnleggende acl, Vi vil at testusers gruppe å ha lesetilgang til alle filene i appdir katalogen
 setfacl -mg. testusers: r appdir /getfacl appdirSet testuser1 å ha lese, skrive og utføre tilgang til appuser1 katalogen 
mens brukeren testuser1 er i testusers gruppen og har lesetilgang til appuser1 katalogen han ikke har skrivetilgang. I dette tilfellet ønsker vi å gi ham skrivetilgang uten å gi resten av testusers skrivetilgang. Dette kan gjøres ved hjelp av tilgangskontrollister ved å angi en bestemt bruker i stedet for en gruppe
 setfacl -mu. Testuser1. Rwx appdir /
 getfacl appdir /brukeren testuser1 kan nå opprette filer i appdir1 katalogen 
 sudo -u testuser1 berøre appdir /file2 
 ls -la appdir /file2 
 -RW-rw-r - + 1 testuser1 testusers 0 27 mai 12:17 appdir /file2Set alle brukere skal ha lese, skrive og kjøre til den delte katalogen 
Vi har nå gitt brukere og grupper rettigheter på kataloger og filer, men hva skjer når vi vil at alle brukere skal ha tilgang til en katalog? Legge hver brukerne navn eller gruppe kan få kjedelige, i dette tilfellet kan vi sette de "andre" eller "verden" tillatelser slik at alle brukere på et system får tilgang til denne katalogen.
 setfacl -mo :: rwx delt 
 getfacl delt /annen metode Stille ACL 
Stille ACL Med Eksempel
vil endre ACL bruke setfacl kommando. For å legge til tillatelser bruke setfacl -m
Legg tillatelser til noen bruker:.
 setfacl -m "u: brukernavn: tillatelser" eller 
 setfacl -m "u: uid: tillatelser" Legg tillatelser til noen gruppe: 
 setfacl -m "g: Gruppenavn: tillatelser" eller 
 setfacl -m "g: GID: tillatelser" Fjern alle tillatelser: 
 setfacl -bRemove hver oppføring: 
 setfacl -x "entry" for å sjekke tillatelsene bruke: 
 getfacl filenameExamples 
Sett alle tillatelser for brukeren johor til filen som heter "abc":
< pre> setfacl -m "u: johor: rwx" abcCheck tillatelser
 getfacl abcOutput 
 # fila: abc # eier: noen # gruppe: someoneuser :: rw-user: johor: rwxgroup: : r-- mask :: rwxother :: r - Endre tillatelser for brukeren johor: 
 setfacl -m "u: johor: rx" abcCheck tillatelser 
 getfacl abcOutput 
 # fila: abc # eier: noen # gruppe: someoneuser :: rw-user: johor: r-xgroup :: r - mask :: r-xother :: r - Fjern alle utvidede ACL oppføringer: 
< pre> setfacl -b abcCheck tillatelser
 getfacl abc 
 # fila: abc # eier: noen # gruppe: someoneuser :: rw-gruppen :: r -