I Linux styr filbehörigheter, attribut och ägande åtkomstnivån som systemet bearbetar och användare har till filer. Detta säkerställer att endast behöriga användare och processer kan komma åt specifika filer och kataloger.
Linux-filbehörigheter #
Den grundläggande Linux-behörighetsmodellen fungerar genom att associera varje systemfil till en ägare och en grupp och tilldela behörighetsåtkomsträttigheter för tre olika klasser av användare:
- Filägaren.
- Gruppmedlemmarna.
- Andra (alla andra).
Filägarskap kan ändras med chown
och chgrp
kommandon.
Tre typer av filbehörigheter gäller för varje användarklass:
- Läsbehörigheten.
- Skrivtillståndet.
- Kör tillståndet.
Med detta koncept kan du kontrollera vilka användare som kan läsa filen, skriva till filen eller köra filen.
Om du vill visa filbehörigheterna använder du ls
kommando:
ls -l filnamn
-rw-r - r-- 12 Linux-användare 12.0K 28 april 10:10 filnamn | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Grupp | | | | | + -------------------> 6. Ägare | | | | + --------------------------> 5. Alternativ åtkomstmetod | | | + ----------------------------> 4. Övriga tillstånd | | + -------------------------------> 3. Grupptillstånd | + ----------------------------------> 2. Ägartillstånd + ------------------------------------> 1. Filtyp
Det första tecknet anger filtypen. Det kan vara en vanlig fil (-
), katalog (d
), en symbolisk länk (l
) eller andra speciella typer av filer. Följande nio tecken representerar filbehörigheterna, tre tripletter med tre tecken vardera. Den första tripletten visar ägarbehörigheterna, den andra gruppbehörigheterna och den sista tripletten visar alla andra behörigheter.
I exemplet ovan (rw-r - r--
) betyder att filägaren har läs- och skrivbehörighet (rw-
), gruppen och andra har bara läsbehörigheter (r--
).
Filbehörigheter har olika betydelse beroende på filtyp.
Var och en av de tre behörighetstripletterna kan konstrueras av följande tecken och ha olika effekter, beroende på om de är inställda på en fil eller en katalog:
Effekt av behörigheter för filer
Lov | Karaktär | Betydelse i filen |
---|---|---|
Läsa | - | Filen är inte läsbar. Du kan inte visa filinnehållet. |
r | Filen är läsbar. | |
Skriva | - | Filen kan inte ändras eller ändras. |
w | Filen kan ändras eller ändras. | |
Kör | - | Filen kan inte köras. |
x | Filen kan köras. | |
s | Om den finns i användare triplett, det ställer in setuid bit. Om den finns i grupp triplett, det ställer in setgid bit. Det betyder också att x flaggan är inställd.När setuid eller setgid flaggor ställs in på en körbar fil, filen körs med filens ägare och / eller gruppbehörighet. | |
S | Samma som s , men x flaggan är inte inställd. Denna flagga används sällan på filer. | |
t | Om den finns i andra triplett, det ställer in klibbig bit.Det betyder också att x flaggan är inställd. Denna flagga är värdelös på filer. | |
T | Samma som, t men x flaggan är inte inställd. Denna flagga är värdelös på filer. |
Effekt av behörigheter på kataloger (mappar)
Kataloger är speciella typer av filer som kan innehålla andra filer och kataloger.
Lov | Karaktär | Betydelse i katalogen |
---|---|---|
Läsa | - | Katalogens innehåll kan inte visas. |
r | Katalogens innehåll kan visas. (e.g., Du kan lista filer i katalogen med ls .) | |
Skriva | - | Katalogens innehåll kan inte ändras. |
w | Katalogens innehåll kan ändras. (e.g., Du kan skapa nya filer, radera filer ... etc.) | |
Kör | - | Katalogen kan inte ändras till. |
x | Katalogen kan navigeras med CD . | |
s | Om den finns i användare triplett, det ställer in setuid bit. Om den finns i grupp triplett ställer den in setgid bit. Det betyder också att x flaggan är inställd. När setgid flaggan ställs in i en katalog, de nya filerna som skapas inom den ärver kataloggrupp-ID (GID) istället för det primära grupp-ID för användaren som skapade filen.setuid har ingen effekt på kataloger. | |
S | Samma som s , men x flaggan är inte inställd. Denna flagga är värdelös i kataloger. | |
t | Om den finns i andra triplett, det ställer in klibbig bit.Det betyder också att x flaggan är inställd. När den klibbiga biten är inställd på en katalog kan bara filens ägare, katalogens ägare eller den administrativa användaren ta bort eller byta namn på filerna i katalogen. | |
T | Samma som t , men x flaggan är inte inställd. Denna flagga är värdelös i kataloger. |
Ändrar filbehörigheter #
Filbehörigheterna kan ändras med chmod
kommando. Endast root, filägaren eller användare med sudo-behörigheter kan ändra behörigheterna för en fil. Var extra försiktig när du använder chmod
, speciellt när rekursivt ändras behörigheter. Kommandot kan acceptera en eller flera filer och / eller kataloger åtskilda av mellanslag som argument.
Behörigheter kan anges i ett symboliskt läge, numeriskt läge eller en referensfil.
Symbolisk (text) metod #
Syntaxen för chmod
kommandot när du använder symboliskt läge har följande format:
chmod [ALTERNATIV] [ugoa ...] [- + =] perms ... [,…] FIL ..
Den första uppsättningen flaggor ([ugoa ...]
), användarnas flaggor, definierar användarnas klasser för vilka behörigheterna till filen ändras.
u
- Filägaren.g
- Användarna som är medlemmar i gruppen.o
- Alla andra användare.a
- Alla användare, identiska medugo
.
När användarnas flagga utelämnas är den som standard a
.
Den andra uppsättningen flaggor ([- + =]
), operationens flaggor, definierar om behörigheterna ska tas bort, läggas till eller ställas in:
-
- Tar bort de angivna behörigheterna.+
- Lägger till angivna behörigheter.=
- Ändrar de aktuella behörigheterna till de angivna behörigheterna. Om inga behörigheter ges efter=
symbol tas alla behörigheter från den angivna användarklassen bort.
Behörigheterna (perms ..
) anges uttryckligen med antingen noll eller en eller flera av följande bokstäver: r
, w
, x
, X
, s
, och t
. Använd en enda bokstav från uppsättningen u
, g
, och o
när du kopierar behörigheter från en till en annan användares klass.
När du ställer in behörigheter för mer än en användarklass ([,…]
), använd kommatecken (utan mellanslag) för att separera de symboliska lägena.
Här är några exempel på hur du använder chmod
kommando i symboliskt läge:
Ge medlemmarna i gruppen tillstånd att köra filen, men inte läsa och skriva till den:
chmod g = x filnamn
Ta bort skrivbehörigheten för alla användare:
chmod a-w filnamn
Ta bort exekveringsbehörigheten för andra användare från repulsivt sätt:
chmod -R o-x dirname
Ta bort läs-, skriv- och exekveringsbehörigheten för alla användare utom filens ägare:
chmod og-rwx filnamn
Samma sak kan också åstadkommas med hjälp av följande formulär:
chmod og = filnamn
Ge läs-, skriv- och körbehörighet till filens ägare, läsbehörigheter till filens grupp och inga behörigheter till alla andra användare:
chmod u = rwx, g = r, o = filnamn
Numerisk metod #
Syntaxen för chmod
kommandot när du använder symboliskt läge har följande format:
chmod [ALTERNATIV] NUMMERFIL ..
När du använder det numeriska läget kan du ställa in behörigheterna för alla tre användarklasserna (ägare, grupp och alla andra) samtidigt.
Behörighetsnumret kan bestå av tre eller fyra siffror. När tre siffror används, representerar den första siffran behörigheterna för filens ägare, den andra filens grupp och den sista alla andra användare.
Varje skriv-, läs- och körbehörighet har följande talvärde:
r
(läs) = 4w
(skriv) = 2x
(exekvera) = 1- inga behörigheter = 0
Behörighetsnumret för en specifik användarklass representeras av summan av värdena för behörigheterna för den gruppen.
För att ta reda på filens behörigheter i numeriskt läge, beräknar du helt enkelt summan för alla användares klasser. Till exempel, för att ge läs-, skriv- och körbehörighet till filens ägare, läs och kör behörigheter till filens grupp och endast läsbehörigheter till alla andra användare, gör du följande:
- Ägare: rwx = 4 + 2 + 1 = 7
- Grupp: r-x = 4 + 0 + 1 = 5
- Andra: r-x = 4 + 0 + 0 = 4
Med metoden ovan kommer vi upp till siffran 754
, som representerar de önskade behörigheterna.
För att ställa in setuid
, setgid
, och klibbig bit
flaggor, använd fyra siffror.
När de fyra siffrorna används har den första siffran följande betydelse:
- setuid = 4
- setgid = 2
- klibbig = 1
- inga ändringar = 0
De följande tre siffrorna har samma betydelse som när du använder tre siffror.
Om den första siffran är 0 kan den utelämnas och läget kan representeras med tre siffror. Det numeriska läget 0755
är det samma som 755
.
För att beräkna det numeriska läget kan du också använda en annan metod (binär metod), men det är lite mer komplicerat. Att veta hur man beräknar det numeriska läget med 4, 2 och 1 är tillräckligt för de flesta användare.
Du kan kontrollera filens behörigheter i den numeriska notationen med hjälp av statistik
kommando:
stat -c "% a" filnamn
Här är några exempel på hur du använder chmod
kommando i numeriskt läge:
Ge filens ägare läs- och skrivbehörigheter och endast läsbehörigheter till gruppmedlemmar och alla andra användare:
chmod 644 dirname
Ge filens ägare läs-, skriv- och exekveringsbehörigheter, läs och kör behörigheter till gruppmedlemmar och inga behörigheter till alla andra användare:
chmod 750 dirname
Ge läs-, skriv- och körbehörigheter och en klibbig bit till en viss katalog:
chmod 1777 dirname
Ställ in läs-, skriv- och körbehörigheter till filägaren och inga behörigheter för alla andra användare i en viss katalog:
chmod-R 700 dirname
Slutsats #
I Linux är åtkomst till filerna begränsad med filbehörigheter, attribut och ägande. För att ändra filens behörigheter använder du chmod
kommando.
Om du har några frågor eller feedback, lämna gärna en kommentar.