Linux fil tilladelser

Tilladelser til Linux-filer - 1.0

Grundlæggende om fil ejerskab og tilladelser på Linux. Lær at forstå, hvem der ejer en fil eller en mappe, hvordan filtilladelserne fungerer, og hvordan du kan se dem, og lær hvordan du selv angiver grundlæggende filtilladelser.

Tilladelser og ejerskab - hvorfor? >

Hvis du ikke kan få adgang til nogle af filerne på dit helt eget Linux-system, er det normalt på grund af forkert konfigurerede filadgangstilladelser. Hvis du er den eneste bruger på din Linux-boks, undrer du dig måske over, hvad det er meningen med at have alle disse tilladelser (eller mangel på dem), der begrænser din adgang til dit helt eget penguin OS. Inden du trækker dit hår af, skal du dog huske på, at Linux er designet til at være et multibrugermiljø. I et miljø med mere end en bruger er det afgørende at have et sikkert system til at beslutte, hvilke filer der er dine, og hvem der kan rode med dem.

Selvom du er den eneste bruger på et almindeligt desktop-system, hjælper filtilladelser med at holde dine vigtige filer sikre, både fra udenforstående og dine egne fejl. 🙂

 

Forståelse af fil ejerskab >

Hver fil på dit Linux-system, herunder mapper, ejes af en bestemt bruger og gruppe. Derfor defineres filtilladelser separat for brugere, grupper og andre.

Bruger: Brugernavnet til den person, der ejer filen. Som standard bliver den bruger, der opretter filen, ejer.

Gruppe: Den brugergruppe, der ejer filen. Alle brugere, der tilhører den gruppe, der ejer filen, har de samme adgangstilladelser til filen. Dette er nyttigt, hvis du for eksempel har et projekt, der kræver en masse forskellige brugere for at kunne få adgang til bestemte filer, mens andre ikke kan. I så fald tilføjer du alle brugerne i den samme gruppe, sørg for at de krævede filer ejes af den gruppe og indstil filens gruppetilladelser i overensstemmelse hermed.

Andre: En bruger, der ikke er ejer af filen og ikke hører til den samme gruppe, som filen gør. Med andre ord, hvis du indstiller en tilladelse til kategorien "anden", påvirker det som standard alle andre. Af denne grund taler folk ofte om at indstille "verdens" tilladelsesbit, når de mener at indstille tilladelserne til "andet".

 

Forståelse af filtilladelser >

Der er tre typer adgangstilladelser på Linux: læse, skrive og udføre. Disse tilladelser defineres separat for filens ejer, gruppe og alle andre brugere.

Læs tilladelse. På en almindelig fil betyder læs tilladelsesbit, at filen kan åbnes og læses. På en mappe betyder læsningstilladelsen, at du kan liste indholdet i mappen.

Skriv tilladelse. På en almindelig fil betyder det, at du kan ændre filen, også skrive nye data til filen. I tilfælde af et bibliotek betyder skrivetilladelsen, at du kan tilføje, fjerne og omdøbe filer i biblioteket. Det betyder, at hvis en fil har skrivetilladelsesbit, har du lov til at ændre filens indhold, men du har kun lov til at omdøbe eller slette filen, hvis filtilladelserne Vejviser tillade dig at gøre det.

Udfør tilladelse. I tilfælde af en almindelig fil betyder det, at du kan udføre filen som et program eller et shell-script. I et bibliotek giver eksekveringstilladelsen (også kaldet "søgebit") dig adgang til filer i biblioteket og indtaster det med cd kommando, for eksempel. Bemærk dog, at selvom eksekveringsbiten giver dig mulighed for at komme ind i biblioteket, har du ikke lov til at angive dets indhold, medmindre du også har læsetilladelser til den pågældende bibliotek.

 

Sådan får du vist filtilladelser >

Du kan se adgangsrettigheder for en fil ved at gøre den lange katalogfortegnelse med ls -l kommando. Dette er, hvad en lang katalogfortegnelse kan se ud:

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

Hvad betyder output fra ls -l betyde? Den allerførste kolonne, den der ligner en masse mumbo-jumbo, viser filtypen og tilladelserne. Den anden kolonne viser antallet af links (biblioteksposter, der refererer til filen), den tredje viser ejeren af ​​filen, og den fjerde viser den gruppe, filen tilhører. De andre kolonner viser filens størrelse i byte, dato og klokkeslæt for sidste ændring og filnavnet.

Den første kolonne, den der viser filens tilladelser og ligner mumbo jumbo, er organiseret i fire separate grupper, selvom det bestemt ikke ser meget organiseret ud.

Den første gruppe består kun af et tegn, og det viser filens type. For eksempel, d betyder en mappe og - betyder en normal fil, så hvis du ser på vores eksempler på output, vil du bemærke det dir er en mappe, mens file , otherfile er almindelige filer.

Det første tegn kan være en af ​​disse:

d = mappe
- = almindelig fil
l = symbolsk link
s = Unix domæne socket
p = navngivet rør
c = tegn enhed fil
b = blok enhed fil

De næste ni tegn viser filens tilladelser opdelt i tre grupper, der hver består af tre tegn. Den første gruppe på tre tegn viser læsning, skrivning og udførelse af tilladelser til bruger, ejeren af ​​filen. Den næste gruppe viser læse, skrive og udføre tilladelser til gruppe af filen. På samme måde viser den sidste gruppe på tre tegn tilladelserne til andre, alle andre. I hver gruppe betyder det første tegn læsningstilladelsen, den anden skrive tilladelse, og den tredje udfører tilladelse.

Tegnene er ret nemme at huske.

r = læs tilladelse
w = skrive tilladelse
x = fuldbyrde tilladelse
- = Ingen tilladelse

Hvad betyder dette i praksis? Lad os have et eksempel. Husker du den imaginære katalogoversigt, vi gjorde i starten? Outputtet så sådan ud:

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 allerede har bemærket, dir er en mappe, fordi den første kolonne begynder med a d. Ejeren af ​​denne mappe er bruger nana og gruppen ejer er writers. De tre første tegn, rwx, angiv katalogets ejer, nana i dette tilfælde har fuld adgang til telefonbogen. Brugeren nana er i stand til at få adgang til, se og ændre filerne i den pågældende mappe. De næste tre tegn, r-x, angiv at alle brugere tilhører gruppen writers har læst og udført tilladelser til biblioteket. De kan skifte til biblioteket, udføre filer og se dets indhold. Men fordi de ikke har skrivetilladelser, kan de ikke foretage ændringer i bibliotekets indhold. Endelig er de sidste tre tegn, r-x, angiv at alle brugere, der ikke er nana eller ikke tilhører gruppen writers, har læst og udfør tilladelser i mappen.

Hvad med file? Fordi den første kolonne begynder med en -, filen er en almindelig fil, der ejes af brugeren nana og gruppe writers, ligesom mappen i vores eksempel. De tre første tegn, rw-, angiv ejeren har læst og skriv adgang til filen. Ifølge de næste tre tegn, r--, brugerne tilhører gruppe writers kan se filen, men ikke ændre eller udføre den. De sidste tre tegn, ---, angiv, at ingen andre har adgang til filen.

På samme måde kan du se otherfile er en almindelig fil, og dens ejer har fuld adgang til det, mens alle andre kan læse og udføre filen, men ikke ændre den.

 

Sådan indstilles filtilladelser - symbolsk tilstand >

Du kan indstille filtilladelser med chmod kommando. Både rodbrugeren og filens ejer kan indstille filtilladelser. chmod har to tilstande, symbolsk og numerisk.

Den symbolske tilstand er ret let at huske. Først beslutter du, om du indstiller tilladelser til brugeren (u), gruppen (g), andre (o) eller alle de tre (a). Derefter tilføjer du enten en tilladelse (+), fjerner den (-) eller sletter de tidligere tilladelser og tilføjer en ny (=). Derefter beslutter du, om du indstiller læsetilladelsen (r), skrivetilladelse (w) eller udfører tilladelse (x). Sidst, fortæller du det chmod hvilken fils tilladelser du vil ændre.

Lad os have et par eksempler. Antag, at vi har en almindelig fil, der kaldes testfile, og filen har fuld adgangsrettigheder for alle grupperne (lang katalogfortegnelse vil vise -rwxrwxrwx som filens tilladelser).

Udslett alle tilladelser, men tilføj læs tilladelse til alle:
chmod a=r testfile
Efter kommandoen ville filens tilladelser være -r--r--r--

Tilføj udfør tilladelser for gruppe:
chmod g+x testfile
Nu ville filens tilladelser være -r--r-xr--

Tilføj både skriv og udfør tilladelser til filens ejer. Bemærk, hvordan du kan indstille mere end en tilladelse på samme tid:
chmod u+wx testfile
Herefter vil filtilladelserne være -rwxr-xr--

Fjern udførelsestilladelsen fra både filens ejer og gruppe. Bemærk igen, hvordan du kan indstille dem begge på én gang:
chmod ug-x testfile
Nu er tilladelserne -rw-r--r--

Som et sammendrag skal du kigge på denne hurtigreference for at indstille filtilladelser i symbolsk tilstand:

Hvilken bruger?
u bruger / ejer
g gruppe
o andre
a alle
Hvad skal jeg gøre?
+ Tilføj denne tilladelse
- fjern denne tilladelse
= Indstil nøjagtig denne tilladelse
Hvilke tilladelser?
r læse
w skriver
x udføre

 

Sådan indstilles filtilladelser - numerisk tilstand >

Den anden tilstand i hvilken chmod kan bruges er den numeriske tilstand. I den numeriske tilstand er filtilladelserne ikke repræsenteret af tegn. I stedet er de repræsenteret af et trecifret oktalt tal.

= læs (r)
2 = skriv (w)
1 = udfør (x)
0 = ingen tilladelse (-)

For at få de tilladelsesbits, du ønsker, tilføjer du tallene i overensstemmelse hermed. For eksempel ville rwx-tilladelserne være 4 + 2 + 1 = 7, rx ville være 4 + 1 = 5, og rw ville være 4 + 2 = 6. Fordi du indstiller separate tilladelser til ejeren, gruppen og andre, skal du bruge et trecifret nummer, der repræsenterer tilladelserne til alle disse grupper.

Lad os have et eksempel.
chmod 755 testfil
Dette ville ændre testfiletilladelser til -rwxr-xr-x. Ejeren ville have fuld læsning, skrivning og udførelse af tilladelser (7 = 4 + 2 + 1), gruppen ville have læst og udfør tilladelser (5 = 4 + 1), og verden ville også have tilladelserne til at læse og udføre .

Lad os have et andet eksempel:
chmod 640 testfil
I dette tilfælde, testfiletilladelser ville være -rw-r-----. Ejeren ville have læse- og skrivetilladelser (6 = 4 + 2), gruppen ville kun have læsetilladelser (4), og de andre ville ikke have nogen adgangstilladelser (0).

Den numeriske tilstand er muligvis ikke så ligetil som den symbolske tilstand, men med den numeriske tilstand kan du hurtigere og mere effektivt indstille filtilladelserne. Denne hurtige reference til indstilling af filtilladelser i numerisk tilstand kan muligvis hjælpe:

Hvilket nummer?
0
1 -x
2 -W-
3 -wx
4 r-
5 rx
6 RW
7 rwx