I Linux styrer filtillatelser, attributter og eierskap tilgangsnivået som systemet behandler og brukere har til filer. Dette sikrer at bare autoriserte brukere og prosesser har tilgang til bestemte filer og kataloger.
Linux-filtillatelser #
Den grunnleggende Linux-tillatelsesmodellen fungerer ved å knytte hver systemfil til en eier og en gruppe og tildele tillatelsesrettigheter for tre forskjellige klasser av brukere:
- Fileieren.
- Gruppemedlemmene.
- Andre (alle andre).
Fil eierskap kan endres ved hjelp av chown
og chgrp
kommandoer.
Tre filtillatelsestyper gjelder for hver klasse brukere:
- Lesetillatelsen.
- Skrivetillatelsen.
- Utfør tillatelsen.
Dette konseptet lar deg kontrollere hvilke brukere som kan lese filen, skrive til filen eller utføre filen.
For å se filtillatelsene, bruk ls
kommando:
ls -l filnavn
-rw-r - r-- 12 linuxize brukere 12.0K 28. april 10:10 filnavn | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Gruppe | | | | | + -------------------> 6. Eier | | | | + --------------------------> 5. Alternativ tilgangsmetode | | | + ----------------------------> 4. Andre Tillatelser | | + -------------------------------> 3. Gruppetillatelser | + ----------------------------------> 2. Eiertillatelser + ------------------------------------> 1. Filtype
Det første tegnet indikerer filtypen. Det kan være en vanlig fil (-
), katalog (d
), en symbolsk lenke (l
) eller andre spesielle filtyper. Følgende ni tegn representerer filtillatelsene, tre tripletter med tre tegn hver. Den første tripletten viser eiertillatelsene, den andre gruppetillatelsene, og den siste tripletten viser alle andre tillatelser.
I eksemplet ovenfor (rw-r - r--
) betyr at fileieren har lese- og skrivetillatelser (rw-
), har gruppen og andre bare lesetillatelser (r--
).
Filtillatelser har en annen betydning, avhengig av filtype.
Hver av de tre tillatelsestriplettene kan være konstruert av følgende tegn og ha forskjellige effekter, avhengig av om de er satt til en fil eller en katalog:
Effekt av tillatelser på filer
Tillatelse | Karakter | Betydning på fil |
---|---|---|
Lese | - | Filen er ikke lesbar. Du kan ikke se filinnholdet. |
r | Filen er lesbar. | |
Skrive | - | Filen kan ikke endres eller endres. |
w | Filen kan endres eller endres. | |
Henrette | - | Filen kan ikke kjøres. |
x | Filen kan kjøres. | |
s | Hvis det finnes i bruker triplett, setter den setuid bit. Hvis det finnes i gruppe triplett, setter den setgid bit. Det betyr også at x flagget er satt.Når setuid eller setgid flagg settes på en kjørbar fil, filen kjøres med filens eier- og / eller grupperettigheter. | |
S | Samme som s , men x flagget er ikke satt. Dette flagget brukes sjelden på filer. | |
t | Hvis det finnes i andre triplett, setter den klebrig bit.Det betyr også at x flagget er satt. Dette flagget er ubrukelig på filer. | |
T | Samme som, t men x flagget er ikke satt. Dette flagget er ubrukelig på filer. |
Effekt av tillatelser på kataloger (mapper)
Kataloger er spesielle filtyper som kan inneholde andre filer og kataloger.
Tillatelse | Karakter | Betydning i katalogen |
---|---|---|
Lese | - | Katalogens innhold kan ikke vises. |
r | Katalogens innhold kan vises. (e.g., Du kan liste opp filer i katalogen med ls .) | |
Skrive | - | Katalogens innhold kan ikke endres. |
w | Katalogens innhold kan endres. (e.g., Du kan opprette nye filer, slette filer ... osv.) | |
Henrette | - | Katalogen kan ikke endres til. |
x | Katalogen kan navigeres ved hjelp av cd . | |
s | Hvis det finnes i bruker triplett, setter den setuid bit. Hvis det finnes i gruppe triplett det setter setgid bit. Det betyr også at x flagget er satt. Når setgid flagg er satt i en katalog, de nye filene som er opprettet i den arver katalog-ID-en (GID) i stedet for den primære gruppe-ID-en til brukeren som opprettet filen.setuid har ingen innvirkning på kataloger. | |
S | Samme som s , men x flagget er ikke satt. Dette flagget er ubrukelig i kataloger. | |
t | Hvis det finnes i andre triplett, setter den klebrig bit.Det betyr også at x flagget er satt. Når den bitete biten er satt i en katalog, er det bare filens eier, katalogens eier eller den administrative brukeren som kan slette eller gi nytt navn til filene i katalogen. | |
T | Samme som t , men x flagget er ikke satt. Dette flagget er ubrukelig i kataloger. |
Endring av filtillatelser #
Filtillatelsene kan endres ved hjelp av chmod
kommando. Bare root, fileieren eller brukeren med sudo-rettigheter kan endre tillatelsene til en fil. Vær ekstra forsiktig når du bruker chmod
, spesielt når du endrer tillatelsene rekursivt. Kommandoen kan akseptere en eller flere filer og / eller kataloger atskilt med mellomrom som argumenter.
Tillatelser kan spesifiseres ved hjelp av en symbolisk modus, numerisk modus eller en referansefil.
Symbolisk (tekst) metode #
Syntaksen til chmod
kommandoen når den symbolske modusen har følgende format:
chmod [ALTERNATIV] [ugoa ...] [- + =] perms ... [,…] FIL ..
Det første settet med flagg ([ugoa ...]
), bruker flagg, definerer brukernes klasser som tillatelsene til filen endres for.
u
- Fileieren.g
- Brukerne som er medlemmer av gruppen.o
- Alle andre brukere.en
- Alle brukere, identiske medugo
.
Når brukernes flagg er utelatt, er det som standard en
.
Det andre settet med flagg ([- + =]
), operasjonsflaggene, definerer om tillatelsene skal fjernes, legges til eller angis:
-
- Fjerner de angitte tillatelsene.+
- Legger til spesifiserte tillatelser.=
- Endrer gjeldende tillatelser til de angitte tillatelsene. Hvis ingen tillatelser gis etter=
symbol, fjernes alle tillatelser fra den angitte brukerklassen.
Tillatelsene (permitter ..
) er eksplisitt angitt med enten null eller en eller flere av følgende bokstaver: r
, w
, x
, X
, s
, og t
. Bruk en enkelt bokstav fra settet u
, g
, og o
når du kopierer tillatelser fra en til en annen brukerklasse.
Når du angir tillatelser for mer enn én brukerklasse ([,…]
), bruk komma (uten mellomrom) for å skille de symbolske modusene.
Her er noen eksempler på hvordan du bruker chmod
kommando i symbolisk modus:
Gi medlemmene i gruppen tillatelse til å kjøre filen, men ikke lese og skrive til den:
chmod g = x filnavn
Fjern skrivetillatelsen for alle brukere:
chmod a-w filnavn
Fjern repulsivt tillatelsen for andre brukere:
chmod -R o-x dirname
Fjern lese-, skrive- og kjørertillatelsen for alle brukere unntatt filens eier:
chmod og-rwx filnavn
Det samme kan også oppnås ved å bruke følgende skjema:
chmod og = filnavn
Gi lese, skrive og utføre tillatelse til filens eier, lesetillatelser til filens gruppe, og ingen tillatelser til alle andre brukere:
chmod u = rwx, g = r, o = filnavn
Numerisk metode nr
Syntaksen til chmod
kommandoen når den symbolske modusen har følgende format:
chmod [ALTERNATIVER] NUMMERFIL ..
Når du bruker numerisk modus, kan du stille inn tillatelsene for alle tre brukerklasser (eier, gruppe og alle andre) samtidig.
Tillatelsesnummeret kan være et nummer på 3 eller 4 sifre. Når det brukes 3 sifre, representerer det første sifferet tillatelsene til filens eier, det andre filens gruppe og det siste alle andre brukere.
Hver tillatelse til å skrive, lese og utføre har følgende tallverdi:
r
(les) = 4w
(skriv) = 2x
(utfør) = 1- ingen tillatelser = 0
Tillatelsesnummeret til en bestemt brukerklasse er representert av summen av verdiene til tillatelsene for den gruppen.
For å finne ut filens tillatelser i numerisk modus, beregn bare totalene for alle brukernes klasser. For eksempel, for å gi lese-, skrive- og utføre tillatelse til filens eier, lese og utføre tillatelser til filgruppen og bare lese tillatelser til alle andre brukere, vil du gjøre følgende:
- Eier: rwx = 4 + 2 + 1 = 7
- Gruppe: r-x = 4 + 0 + 1 = 5
- Andre: r-x = 4 + 0 + 0 = 4
Ved hjelp av metoden ovenfor kommer vi opp til tallet 754
, som representerer de ønskede tillatelsene.
Å sette opp setuid
, setgid
, og klebrig bit
flagg, bruk fire sifre.
Når nummeret på 4 sifre brukes, har det første sifferet følgende betydning:
- setuid = 4
- setgid = 2
- klebrig = 1
- ingen endringer = 0
De neste tre sifrene har samme betydning som når du bruker tre sifret.
Hvis det første sifferet er 0, kan det utelates, og modusen kan vises med 3 sifre. Den numeriske modusen 0755
er det samme som 755
.
For å beregne numerisk modus kan du også bruke en annen metode (binær metode), men den er litt mer komplisert. Å vite hvordan man beregner numerisk modus ved hjelp av 4, 2 og 1 er tilstrekkelig for de fleste brukere.
Du kan sjekke filens tillatelser i den numeriske notasjonen ved hjelp av stat
kommando:
stat -c "% a" filnavn
Her er noen eksempler på hvordan du bruker chmod
kommando i numerisk modus:
Gi filens eier lese- og skrivetillatelser og bare lesetillatelser til gruppemedlemmer og alle andre brukere:
chmod 644 dirname
Gi filens eier lese-, skrive- og utførelsesrettigheter, lese- og utføre tillatelser til gruppemedlemmer og ingen tillatelser til alle andre brukere:
chmod 750 dirname
Gi tillatelser til å lese, skrive og utføre, og en klebrig bit til en gitt katalog:
chmod 1777 dirname
Sett rekursivt lese-, skrive- og utførelsesrettigheter til fileieren og ingen tillatelser for alle andre brukere i en gitt katalog:
chmod -R 700 dirname
Konklusjon #
I Linux er tilgang til filene begrenset ved hjelp av filtillatelser, attributter og eierskap. For å endre filens tillatelser, bruk chmod
kommando.
Hvis du har spørsmål eller tilbakemeldinger, er du velkommen til å legge igjen en kommentar.