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 sumontere. | 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 aclii 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 aclii 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 appdirdrwxrwxr-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 /file2ls -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 deltgetfacl 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 -