Linux-filbehörigheter

Linux-filbehörigheter - 1.0

Grunderna för filägande och behörigheter på Linux. Lär dig att förstå vem som är ägare till en fil eller katalog, hur filbehörigheter fungerar och hur du kan visa dem och lära dig hur du ställer in grundläggande filbehörigheter själv.

Behörigheter och ägande - varför? >

Om du inte kan komma åt några av filerna på ditt eget Linux-system beror det vanligtvis på felkonfigurerade filåtkomstbehörigheter. Om du är den enda användaren i din Linux-låda kanske du undrar vad det är med att ha alla dessa behörigheter (eller brist på dem) som begränsar din tillgång till ditt eget pingvin-operativsystem. Innan du drar av dig håret måste du dock tänka på att Linux är utformat för att vara en miljö för flera användare. I en miljö med mer än en användare är det viktigt att ha ett säkert system för att avgöra vilka filer som är dina och vem som kan bråka med dem.

Även om du är den enda användaren på ett vanligt skrivbordssystem, hjälper filbehörigheter att skydda dina viktiga filer, både från utomstående och dina egna misstag. 🙂

 

Förstå filägande >

Varje fil på ditt Linux-system, inklusive kataloger, ägs av en specifik användare och grupp. Därför definieras filbehörigheter separat för användare, grupper och andra.

Användare: Användarnamnet till den person som äger filen. Som standard kommer användaren som skapar filen att bli ägare.

Grupp: Användargruppen som äger filen. Alla användare som tillhör gruppen som äger filen kommer att ha samma åtkomstbehörighet till filen. Detta är användbart om du till exempel har ett projekt som kräver en massa olika användare för att få åtkomst till vissa filer, medan andra inte kan. I så fall lägger du till alla användare i samma grupp, ser till att de filer som krävs ägs av den gruppen och ställer in filens gruppbehörigheter därefter.

Andra: En användare som inte är ägare till filen och inte tillhör samma grupp som filen gör. Med andra ord, om du ställer in en behörighet för kategorin “annan” påverkar det alla andra som standard. Av den anledningen pratar folk ofta om att ställa in "world" -tillståndsbiten när de menar att ställa in behörigheterna för "other".

 

Förstå filbehörigheter >

Det finns tre typer av åtkomstbehörigheter på Linux: läs, skriv och kör. Dessa behörigheter definieras separat för filens ägare, grupp och alla andra användare.

Läs behörighet. På en vanlig fil betyder läsbehörigheten att filen kan öppnas och läsas. I en katalog betyder läsbehörigheten att du kan lista innehållet i katalogen.

Skriv tillåtelse. På en vanlig fil betyder det att du kan ändra filen, även skriva nya data till filen. När det gäller en katalog betyder skrivbehörigheten att du kan lägga till, ta bort och byta namn på filer i katalogen. Det betyder att om en fil har skrivbehörighetsbiten får du ändra filens innehåll, men du får bara byta namn på eller radera filen om filens behörigheter katalog tillåta dig att göra det.

Utför tillåtelse. När det gäller en vanlig fil betyder det att du kan köra filen som ett program eller ett skalskript. I en katalog tillåter exekveringsbehörigheten (även kallad "sökbit") åtkomst till filer i katalogen och anger den, med cd till exempel. Observera dock att även om execute-biten låter dig komma in i katalogen, får du inte lista dess innehåll, såvida du inte också har läsbehörigheter till den katalogen.

 

Så här visar du filbehörigheter >

Du kan visa åtkomstbehörigheter för en fil genom att göra den långa kataloglistan med ls -l kommando. Så här kan en lång kataloglista se ut:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Vad gör produktionen av ls -l betyda? Den allra första kolumnen, den som ser ut som en massa mumbo-jumbo, visar filtyp och behörigheter. Den andra kolumnen visar antalet länkar (katalogposter som hänvisar till filen), den tredje visar ägaren till filen och den fjärde visar gruppen gruppen filen tillhör. De andra kolumnerna visar filens storlek i byte, datum och tid för senaste ändring och filnamn.

Den första kolumnen, den som visar filens behörigheter och ser ut som mumbo jumbo, är organiserad i fyra separata grupper, även om den verkligen inte ser särskilt organiserad ut.

Den första gruppen består av endast ett tecken och den visar filens typ. Till exempel, d betyder en katalog och - betyder en normal fil, så om du tittar på vårt exempel på utdata kommer du att märka det dir är en katalog, medan file och otherfile är vanliga filer.

Det första tecknet kan vara något av följande:

d = katalog
- = vanlig fil
l = symbolisk länk
s = Unix domänuttag
p = namngivna rör
c = karaktärenhetsfil
b = blockera enhetsfilen

De kommande nio tecknen visar filens behörigheter, uppdelade i tre grupper, var och en bestående av tre tecken. Den första gruppen med tre tecken visar läs-, skriv- och körbehörigheterna för användare, ägaren av filen. Nästa grupp visar läs, skriv och kör behörigheter för grupp av filen. På samma sätt visar den sista gruppen med tre tecken behörigheterna för andra, alla andra. I varje grupp betyder det första tecknet läsbehörigheten, den andra en skrivbehörighet och den tredje som kör behörigheten.

Tecknen är ganska lätta att komma ihåg.

r = läs tillstånd
w = skrivtillstånd
x = kör behörighet
- = ingen tillåtelse

Vad betyder detta i praktiken? Låt oss få ett exempel. Kommer du ihåg den imaginära kataloglistan vi gjorde i början? Resultatet såg ut så här:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Som vi redan märkte, dir är en katalog, eftersom den första kolumnen börjar med en d. Ägaren till den här katalogen är användaren nana och gruppägaren är writers. De tre första tecknen, rwx, ange katalogens ägare, nana i det här fallet har full tillgång till katalogen. Användaren nana kan komma åt, visa och ändra filerna i den katalogen. De tre följande tecknen, r-x, ange att alla användare som tillhör gruppen writers har läst och kör behörigheter till katalogen. De kan byta till katalogen, köra filer och se dess innehåll. Men eftersom de inte har skrivbehörighet kan de inte göra några ändringar i kataloginnehållet. Slutligen, de sista tre karaktärerna, r-x, ange att alla användare som inte är nana eller hör inte till gruppen writers, har läst och kör behörigheter i katalogen.

Vad sägs om file? Eftersom den första kolumnen börjar med a -, filen är en vanlig fil som ägs av användaren nana och grupp writers, precis som katalogen i vårt exempel. De tre första tecknen, rw-, ange att ägaren har läst och skriv åtkomst till filen. Enligt de tre följande tecknen, r--, användarna tillhör gruppen writers kan visa filen men inte ändra eller exekvera den. De sista tre tecknen, ---, indikerar att ingen annan har någon åtkomst till filen.

På samma sätt kan du se otherfile är en vanlig fil och dess ägare har full tillgång till den, medan alla andra kan läsa och exekvera filen men inte ändra den.

 

Så här ställer du in filbehörigheter - symboliskt läge >

Du kan ställa in filbehörigheter med chmod kommando. Både rotanvändaren och filens ägare kan ställa in filbehörigheter. chmod har två lägen, symboliska och numeriska.

Det symboliska läget är ganska lätt att komma ihåg. Först bestämmer du om du ställer in behörigheter för användaren (u), gruppen (g), andra (o) eller alla de tre (a). Sedan antingen lägger du till en behörighet (+), tar bort den (-) eller raderar tidigare behörigheter och lägger till en ny (=). Därefter bestämmer du om du ställer in läsbehörighet (r), skrivbehörighet (w) eller utför tillstånd (x). Sist, kommer du att berätta chmod vilken fils behörighet du vill ändra.

Låt oss ta ett par exempel. Anta att vi har en vanlig fil som heter testfile, och filen har fullständiga åtkomstbehörigheter för alla grupper (länklistan skulle visa -rwxrwxrwx som filens behörigheter).

Torka ut alla behörigheter men lägg till läsbehörighet för alla:
chmod a=r testfile
Efter kommandot skulle filens behörigheter vara -r--r--r--

Lägg till exekvera behörigheter för gruppen:
chmod g+x testfile
Nu skulle filens behörigheter vara -r--r-xr--

Lägg till både skriv- och körbehörigheter för filens ägare. Observera hur du kan ställa in mer än en behörighet samtidigt:
chmod u+wx testfile
Därefter kommer filbehörigheterna att vara -rwxr-xr--

Ta bort körtillståndet från både filens ägare och grupp. Obs, igen, hur du kan ställa in dem båda samtidigt:
chmod ug-x testfile
Nu är behörigheterna -rw-r--r--

Som en sammanfattning, kolla på denna snabbreferens för att ställa in filbehörigheter i symboliskt läge:

Vilken användare?
u användaren / ägaren
g grupp
o andra
a alla
Vad göra?
+ lägg till denna tillåtelse
- ta bort denna behörighet
= Ange exakt detta tillstånd
Vilka behörigheter?
r läsa
w skriva
x exekvera

 

Hur man ställer in filbehörigheter - numeriskt läge >

Det andra läget i vilket chmod kan användas är det numeriska läget. I det numeriska läget representeras inte filbehörigheterna av tecken. Istället representeras de av ett tresiffrigt oktalt tal.

= läs (r)
2 = skriv (w)
1 = exekvera (x)
0 = ingen tillåtelse (-)

För att få behörighetsbitarna du vill lägga till siffrorna i enlighet med detta. Till exempel skulle rwx-behörigheterna vara 4 + 2 + 1 = 7, rx skulle vara 4 + 1 = 5 och rw skulle vara 4 + 2 = 6. Eftersom du ställer in separata behörigheter för ägaren, gruppen och andra behöver du ett tresiffrigt nummer som representerar behörigheterna för alla dessa grupper.

Låt oss få ett exempel.
chmod 755 testfil
Detta skulle förändra testfilehar behörighet till -rwxr-xr-x. Ägaren skulle ha full läs, skriv och kör behörigheter (7 = 4 + 2 + 1), gruppen skulle ha läst och utföra behörigheter (5 = 4 + 1) och världen skulle ha läs och kör behörigheter också .

Låt oss ha ett annat exempel:
chmod 640 testfil
I det här fallet, testfilebehörigheter skulle vara -rw-r-----. Ägaren skulle ha läs- och skrivbehörighet (6 = 4 + 2), gruppen hade endast läsbehörigheter (4) och de andra skulle inte ha någon behörighet (0).

Det numeriska läget kan inte vara lika enkelt som det symboliska läget, men med det numeriska läget kan du snabbt och effektivt ställa in filbehörigheterna. Den här snabbreferensen för inställning av filbehörigheter i numeriskt läge kan hjälpa till:

Vilket nummer?
0 -
1 –X
2 -w-
3 -wx
4 r–
5 rx
6 rw
7 rwx