Tilgangskontrolllister i Ubuntu

Tilgangskontrolllister i Ubuntu
Brukerkontoer opprettes med et visst sett med forhåndsdefinerte privilegier og rettigheter til systemfiler og tjenester. På den annen side eksisterer grupper for å dele filer og mapper mellom brukere. Når brukerkontoer opprettes, kan de vanligvis tilordnes alternative grupper. Imidlertid er det tider hvor du kanskje ikke vil tilordne en bestemt bruker til en bestemt gruppe, men samtidig kan det hende du trenger å dele filer/mapper med den spesifikke brukeren. Det er her Access Control Lists (ACL) kommer inn i bildet. I denne opplæringen lærer vi om tilgangskontrolllister i Ubuntu.

Tilgangskontrolllister (ACL)

Tilgangskontrolllister (ACL) lar oss finjustere tilgangskontroll. Anta med andre ord at brukeren Sara trenger tilgang til en enkelt mappe som eies av Kalyani. Teknisk sett kunne vi tildele Sara til Kalyanis gruppe, men det vil bety at Sara ville ha tilgang til mer enn hun trenger, og antar videre at Kalyani har sensitive filer som hun ikke vil at Sara skal lese, skrive eller utføre. Det er her tilgangskontrolllister eller ACL -er kommer inn i bildet. Vi kan i teorien rote med tillatelser, men ACL -er lar oss gi forskjellige tilganger til forskjellige brukere, samt gi tilgang uten å måtte rote med de faktiske basetillatelsene til filen eller mappen.

Viser gjeldende tillatelser

Vi bruker kommandoen GetFaCL (Get File Access Control) for å se gjeldende ACL -tillatelser.

getfacl fil mappe

La oss anta at jeg lager en mappe kalt Secret med to underkataloger og 5 filer. Anta videre at jeg vil se ACL -tillatelsene i den hemmelige mappen.

getfacl hemmelighet

Dette betyr at eieren av filene og mappen, Kalyani, som tilhører gruppen Kalyani, har lest, skriver og utfører tillatelser. Alle andre har imidlertid ingen tillatelse overhodet.

Tilordne brukerens finjusterte tillatelser

Finjustering av tillatelsene med ACL utføres ved hjelp av SETFACL-kommandoen. Spesielt -bryteren brukes til å endre tillatelser.

setfacl -m u: brukernavn: tillatelser filnavn

U betegner at endringen er for en bruker og ikke en gruppe. Etter tykktarmen ville man skrive brukernavnet som tillatelsen er gitt, samt tillatelsen som er gitt. Tillatelsene er de samme som de som er tilgjengelige for Chmod: Les, skriv og utfør. Til slutt skriver vi filnavnet som tillatelsen brukes.

Anta for eksempel at jeg ønsker å gi henne full tilgang til denne hemmelige mappen til brukeren Sara, så vil jeg skrive:

setfacl -m u: sara: rwx hemmelighet

Hvis vi logger inn som Sara, ville vi ha lest, skrevet og utført tilgang til mappen “Secret”. Nå, husk at jeg satte 770 tillatelse til den første katalogen. Denne tillatelsen ble oppbevart, men et unntak fra regelen ble lagt til ved hjelp av tilgangskontrolllister. Hvis jeg hadde en annen mappe kalt “Kali” med tillatelse 770 eid av Kalyani, ville ikke brukeren Sara kunne berøre den. Faktisk vil det si "tillatelse nektet".

Videre er et poeng å merke seg at når filen er endret som en ACL, er det et pluss -skilt ved siden av når du viser den. I dette tilfellet står det som du kan se DRWXRWX-+ for mappen som heter Secret. Plusskiltet innebærer at det er endret med ACLS.

Når du har angitt ACL -er, opprettes også en maske. Masken er den maksimale tillatelsen en ACL -bruker eller gruppe potensielt kan ha på en katalog eller en fil.

Tilordne grupper finjusterte tillatelser

Mye som å tildele brukere spesiell tillatelse, kan vi også tildele grupper spesiell tillatelse. Hva dette betyr er at vi kan holde grunntillatelsene våre som den er og tildele en bestemt gruppe tilleggstillatelse ved hjelp av ACL.

setfacl -m g: group_name: tillatelser filnavn

Eks:

setfacl -m g: John: r hemmelighet

I dette tilfellet gir vi gruppen John leser tillatelse til den hemmelige mappen. Dette betyr at alle medlemmer av gruppen John vil ha lest tillatelse til den hemmelige mappen og bare den hemmelige mappen. Alt annet vil være under lås og nøkkel.

Rekursiv oppgave

Den hemmelige mappen ble designet med 3 filer direkte i den og 2 underkataloger, hver med en enkelt fil i den.

Da vi tildelte tillatelsene til brukeren Sara og Group John, gjorde vi det ikke rekursivt, så la oss sjekke ACL-tillatelsene til underkatalogene for øyeblikket (etter å ha tildelt tillatelser til den hemmelige katalogen).

Som du ser, ACL-tillatelsene bare gjaldt den hemmelige katalogen og ikke underkatalogene. Hva dette betyr er at brukeren Sara og gruppen John ikke har de gitte tillatelsene på underkatalogene! I dette tilfellet, hvis vi ønsker å gi tillatelser til hele katalogen (inkludert underkatalogene), må vi gjøre et rekursivt oppdrag. Vi bruker -r -bryteren for å gjøre dette.

setfacl -r -m u: brukernavn: tillatelser filnavn

Eks:

setfacl -r -m u: sara: rwx hemmelighet

Slette finjusterte tillatelser

Det kan også være lurt å tilbakekalle tillatelsene som er gitt, og det er like enkelt å gjøre som å gi dem. Du bruker -x -bryteren i stedet for -m -bryteren for å tilbakekalle tillatelsene.

For å fjerne en spesifikk oppføring:

setfacl -x u: brukernavn filnavn
setfacl -x g: group_name filnavn

I dette tilfellet ville jeg skrevet:

setfacl -x u: sara hemmelighet
setfacl -x g: John Secret

For å fjerne alle oppføringene i ett skudd:

setfacl -b filnavn

For eksempel:

setfacl -b hemmelighet

Dette fjerner imidlertid ikke rettighetene på underkatalogene. For å fjerne rettighetene fra underkatalogene, må du bruke rekursjon.

setfacl -r -b hemmelighet

Sammendrag

Alt vi lærte koker ned til dette:

For å se ACL -tillatelser:

getfacl filnavn

For å angi ACL -tillatelser:

setfacl filnavn

Alternativer:
-m, -modifiser modifiser ACL
-x, -fisk Fjern ACL -oppføringen
-B, -Fær alle fjerne alle ACL -oppføringer
-R rekursiv tildeling

Inngang:
U: Brukernavn: Tillatelser for brukere
G: Gruppenavn: Tillatelser for grupper

Selv om CHMOD eksisterer for å gi tillatelser for filer og mapper, er den ikke selektiv. Det kan ikke gi forskjellige privilegier til forskjellige brukere. Videre er det tider hvor man ikke vil legge til tilfeldige mennesker til grupper heller. ACL- eller tilgangskontrolllister ble oppfunnet akkurat for denne typen anledninger. Det kan gi spesifikke brukere eller grupper tilgang til spesifikke filer og/eller mapper. I denne opplæringen lærte vi hvordan vi kan gi brukere og grupper spesielle tillatelser, rekursivt tildele tillatelser og tilbakekalle nevnte tillatelser. Så gå frem og finjustere tillatelser på filer og mapper herfra og videre!

Glad koding!