I Linux styrer filtilladelser, attributter og ejerskab det adgangsniveau, som systemet behandler og brugere har til filer. Dette sikrer, at kun autoriserede brugere og processer har adgang til bestemte filer og kataloger.
Linux-filtilladelser #
Den grundlæggende Linux-tilladelsesmodel fungerer ved at knytte hver systemfil til en ejer og en gruppe og tildele tilladelsesadgangsrettigheder til tre forskellige klasser af brugere:
- Filens ejer.
- Gruppemedlemmerne.
- Andre (alle andre).
Filejerskab kan ændres ved hjælp af chown
og chgrp
kommandoer.
Tre filtilladelsestyper gælder for hver klasse af brugere:
- Læsetilladelsen.
- Skrivetilladelsen.
- Udfør tilladelsen.
Dette koncept giver dig mulighed for at kontrollere, hvilke brugere der kan læse filen, skrive til filen eller udføre filen.
For at se filtilladelserne skal du bruge ls
kommando:
ls -l filnavn
-rw-r - r-- 12 Linux-brugere 12.0K 28. apr. 10:10 filnavn | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Gruppe | | | | | + -------------------> 6. Ejer | | | | + --------------------------> 5. Alternativ adgangsmetode | | | + ----------------------------> 4. Andre Tilladelser | | + ------------------------------> 3. Gruppetilladelser | + ----------------------------------> 2. Ejertilladelser + ------------------------------------> 1. Filtype
Det første tegn angiver filtypen. Det kan være en almindelig fil (-
), bibliotek (d
), et symbolsk link (l
) eller andre specielle typer filer. De følgende ni tegn repræsenterer filtilladelserne, tre tripletter på tre tegn hver. Den første triplet viser ejerens tilladelser, den anden gruppe tilladelser, og den sidste triplet viser alle andres tilladelser.
I eksemplet ovenfor (rw-r - r--
) betyder, at filejeren har læse- og skrivetilladelser (rw-
), gruppen og andre har kun læsetilladelser (r--
).
Filtilladelser har en anden betydning afhængigt af filtypen.
Hver af de tre tilladelsestripletter kan konstrueres af følgende tegn og have forskellige effekter, afhængigt af om de er indstillet til en fil eller til en mappe:
Effekt af tilladelser på filer
Tilladelse | Karakter | Betydning på fil |
---|---|---|
Læs | - | Filen kan ikke læses. Du kan ikke se filens indhold. |
r | Filen kan læses. | |
Skrive | - | Filen kan ikke ændres eller ændres. |
w | Filen kan ændres eller ændres. | |
Udfør | - | Filen kan ikke udføres. |
x | Filen kan udføres. | |
s | Hvis den findes i bruger triplet, det indstiller setuid bit. Hvis den findes i gruppe triplet, det indstiller setgid bit. Det betyder også, at x flag er sat.Når setuid eller setgid flag indstilles på en eksekverbar fil, filen udføres med filens ejer- og / eller grupperettigheder. | |
S | Samme som s , men x flag er ikke sat. Dette flag bruges sjældent på filer. | |
t | Hvis den findes i andre triplet, det indstiller klæbrig bit.Det betyder også, at x flag er sat. Dette flag er ubrugeligt på filer. | |
T | Samme som, t men x flag er ikke sat. Dette flag er ubrugeligt på filer. |
Effekt af tilladelser på kataloger (mapper)
Kataloger er specielle typer filer, der kan indeholde andre filer og kataloger.
Tilladelse | Karakter | Betydning på telefonbogen |
---|---|---|
Læs | - | Katalogets indhold kan ikke vises. |
r | Katalogets indhold kan vises. (e.g., Du kan liste filer i biblioteket med ls .) | |
Skrive | - | Katalogets indhold kan ikke ændres. |
w | Katalogets indhold kan ændres. (e.g., Du kan oprette nye filer, slette filer ... osv.) | |
Udfør | - | Kataloget kan ikke ændres til. |
x | Kataloget kan navigeres ved hjælp af cd . | |
s | Hvis den findes i bruger triplet, det indstiller setuid bit. Hvis den findes i gruppe triplet indstiller den setgid bit. Det betyder også, at x flag er sat. Når setgid flag er indstillet på et bibliotek, de nye filer, der oprettes inden i det, arver bibliotekets gruppe-id (GID) i stedet for det primære gruppe-id for den bruger, der oprettede filen.setuid har ingen indvirkning på mapper. | |
S | Samme som s , men x flag er ikke sat. Dette flag er ubrugeligt i mapper. | |
t | Hvis den findes i andre triplet, det indstiller klæbrig bit.Det betyder også, at x flag er sat. Når den sticky bit er indstillet på en mappe, er det kun filens ejer, katalogets ejer eller den administrative bruger, der kan slette eller omdøbe filerne i kataloget. | |
T | Samme som t , men x flag er ikke sat. Dette flag er ubrugeligt i mapper. |
Ændring af filtilladelser #
Filtilladelserne kan ændres ved hjælp af chmod
kommando. Kun root, filejeren eller brugeren med sudo-rettigheder kan ændre tilladelserne for en fil. Vær ekstra forsigtig, når du bruger den chmod
, især når rekursivt ændres tilladelserne. Kommandoen kan acceptere en eller flere filer og / eller mapper adskilt af mellemrum som argumenter.
Tilladelser kan specificeres ved hjælp af en symbolsk tilstand, numerisk tilstand eller en referencefil.
Symbolisk (tekst) metode nr
Syntaksen for chmod
kommando, når du bruger den symbolske tilstand, har følgende format:
chmod [VALGMULIGHEDER] [ugoa…] [- + =] perms ... [,…] FIL ..
Det første sæt flag ([ugoa ...]
), brugernes flag, definerer brugernes klasser, for hvilke tilladelserne til filen ændres.
u
- Filens ejer.g
- De brugere, der er medlemmer af gruppen.o
- Alle andre brugere.-en
- Alle brugere, identiske medugo
.
Når brugernes flag er udeladt, er det som standard -en
.
Det andet sæt flag ([- + =]
), operationens flag, definerer, om tilladelserne skal fjernes, tilføjes eller indstilles:
-
- Fjerner de angivne tilladelser.+
- Tilføjer specificerede tilladelser.=
- Ændrer de aktuelle tilladelser til de angivne tilladelser. Hvis der ikke gives tilladelser efter=
symbol, fjernes alle tilladelser fra den angivne brugerklasse.
Tilladelserne (permanenter ..
) indstilles eksplicit ved hjælp af enten nul eller et eller flere af følgende bogstaver: r
, w
, x
, x
, s
, og t
. Brug et enkelt bogstav fra sættet u
, g
, og o
når du kopierer tilladelser fra en til en anden brugerklasse.
Når du indstiller tilladelser til mere end en brugerklasse ([,…]
), brug kommaer (uden mellemrum) til at adskille de symbolske tilstande.
Her er nogle eksempler på, hvordan du bruger chmod
kommando i symbolsk tilstand:
Giv gruppens medlemmer tilladelse til at udføre filen, men ikke at læse og skrive til den:
chmod g = x filnavn
Fjern skrivetilladelsen for alle brugere:
chmod a-w filnavn
Fjern frastødende eksekveringstilladelsen for andre brugere:
chmod -R o-x dirname
Fjern læs, skriv og udfør tilladelse til alle brugere undtagen filens ejer:
chmod og-rwx filnavn
Den samme ting kan også opnås ved hjælp af følgende form:
chmod og = filnavn
Giv læs, skriv og udfør tilladelse til filens ejer, læs tilladelser til filens gruppe og ingen tilladelser til alle andre brugere:
chmod u = rwx, g = r, o = filnavn
Numerisk metode nr
Syntaksen for chmod
kommando, når du bruger den symbolske tilstand, har følgende format:
chmod [VALGMULIGHEDER] NUMMERFIL ..
Når du bruger den numeriske tilstand, kan du indstille tilladelserne for alle tre brugerklasser (ejer, gruppe og alle andre) på samme tid.
Tilladelsesnummeret kan være et 3- eller 4-cifret nummer. Når der bruges 3 cifre, repræsenterer det første ciffer tilladelser for filens ejer, det andet for filens gruppe og det sidste for alle andre brugere.
Hver tilladelse til at skrive, læse og udføre har følgende talværdi:
r
(læs) = 4w
(skriv) = 2x
(udfør) = 1- ingen tilladelser = 0
Tilladelsesnummeret for en bestemt brugerklasse er repræsenteret af summen af værdierne for tilladelserne for den pågældende gruppe.
For at finde ud af filens tilladelser i numerisk tilstand skal du blot beregne totalerne for alle brugeres klasser. For eksempel, for at give læs, skriv og udfør tilladelse til filens ejer, læs og udfør tilladelser til filens gruppe og kun læs tilladelser til alle andre brugere, gør du følgende:
- Ejer: rwx = 4 + 2 + 1 = 7
- Gruppe: r-x = 4 + 0 + 1 = 5
- Andre: r-x = 4 + 0 + 0 = 4
Ved hjælp af ovenstående metode kommer vi op på tallet 754
, som repræsenterer de ønskede tilladelser.
For at indstille setuid
, setgid
, og klæbrig bit
flag, brug fire cifre.
Når nummeret på 4 cifre bruges, har det første ciffer følgende betydning:
- setuid = 4
- setgid = 2
- klæbrig = 1
- ingen ændringer = 0
De næste tre cifre har samme betydning som når du bruger 3 cifret nummer.
Hvis det første ciffer er 0, kan det udelades, og tilstanden kan repræsenteres med 3 cifre. Den numeriske tilstand 0755
er det samme som 755
.
For at beregne den numeriske tilstand kan du også bruge en anden metode (binær metode), men den er lidt mere kompliceret. At vide, hvordan man beregner den numeriske tilstand ved hjælp af 4, 2 og 1, er tilstrækkelig for de fleste brugere.
Du kan kontrollere filens tilladelser i den numeriske notation ved hjælp af stat
kommando:
stat -c "% a" filnavn
Her er nogle eksempler på, hvordan du bruger chmod
kommando i numerisk tilstand:
Giv filens ejer læse- og skrivetilladelser og læs kun tilladelser til gruppemedlemmer og alle andre brugere:
chmod 644 dirname
Giv filens ejer læs, skriv og udfør tilladelser, læs og udfør tilladelser til gruppemedlemmer og ingen tilladelser til alle andre brugere:
chmod 750 dirname
Giv læs, skriv og udfør tilladelser og en sticky bit til en given mappe:
chmod 1777 dirname
Sæt rekursivt læsning, skriv og udfør tilladelser til filejeren og ingen tilladelser for alle andre brugere i et givet bibliotek:
chmod -R 700 dirname
Konklusion #
I Linux er adgangen til filerne begrænset ved hjælp af filtilladelser, attributter og ejerskab. For at ændre filens tilladelser skal du bruge chmod
kommando.
Hvis du har spørgsmål eller feedback, er du velkommen til at efterlade en kommentar.