Jeg har taget kurs på Linux i de sidste par måneder, og et aspekt af Linux, der altid forvirrede mig, var, hvordan tilladelser fungerede. For eksempel, når jeg uploadede en fil til min webserver en gang og fik en fejl, blev jeg fortalt af min webhost at ændre filtilladelserne til 755.
Jeg havde ingen anelse om, hvad det betød, selvom ændring af tilladelserne fik problemet. Jeg har nu indset Linux tilladelser er ikke så komplicerede, du skal bare forstå systemet. I denne artikel vil jeg tale om Linux-tilladelser på et højt niveau og vise dig hvordan du bruger chmod-kommandoen til at ændre tilladelser til filer og mapper.
Linux tilladelser og niveauer
I Linux er der grundlæggende tre tilladelser, som du normalt skal bekymre dig om: læse, skrive og udføre. Alle tre af disse er ret selvforklarende. Nu, når disse tilladelser anvendes på en fil, anvendes de i niveauer.
Der er tre tilladelsesniveauer i Linux: ejer, gruppe og andet. Ejeren er den bruger, der ejer filen / mappen, gruppen indeholder andre brugere i filens gruppe og andre repræsenterer bare alle andre brugere, der ikke er ejer eller i gruppen.
Læs, skriv og udfør er repræsenteret som enten symbolske tegn eller som oktalnumre. Hvis du for eksempel gør en ls -l i en mappe med nogle filer, vil du se den symbolske tegnrepræsentation af tilladelserne.
Tilladelserne er skrevet som følger: Den første bit er enten et bindestreg eller bogstavet d. Dash betyder, at det er en fil, og d står for bibliotek. Bemærk at den første bit også kan være en l, hvis filnavnet er et link. Dernæst er der tre grupper på tre bits. Den første bit i hver gruppe er til læsning, den anden bit er til skrive, og den tredje bit er til udførelse. De første tre bits er til ejeren, den anden tre bit er til gruppen og de tredje tre bits er til andre. Her er en mere visuel forklaring.
Hvis du ser et bindestreg i stedet for et brev, betyder det, at ejeren, gruppen eller alle andre brugere ikke har denne tilladelse. I eksemplet ovenfor har ejeren, gruppen og alle andre læst skrive og udfør tilladelser.
Hvis du ser på output fra ls -l kommandoen, vil du bemærke, at min praksis tekstfil har følgende tilladelser:
-RW-rw-rw-
Det betyder, at alle kun har læs / skrive tilladelser til filen. Her er et andet eksempel:
drwxr - r--
Når vi ser på den første bit, kan vi se, at tilladelserne er til en mappe. Ejeren har læse / skrive / udføre tilladelser, men gruppen og andre brugere har kun tilladelse til læsning.
Octal Nummerpræsentation
Så det er hvordan tilladelser vises i Linux ved hjælp af symboler. Den anden måde at repræsentere de samme tilladelser på er at bruge oktale tal. Når vi bruger kommandoen chmod senere, vil du se, at du kan ændre tilladelserne ved hjælp af enten symboler eller oktalnumre.
Så hvordan repræsenterer Linux læsning, skrivning og udførelse ved hjælp af oktalnumre? I princippet tildeler det bare et nummer til hver tilladelse som vist nedenfor.
Læs tilladelsen er repræsenteret ved 4, skriv med 2 og udfør med 1. Alt du skal gøre er at tilføje dem for at få den oktale tilladelse. Lad os eksempelvis tage eksemplet ovenfor, hvor alle har alle tilladelser:
-rwxrwxrwx
Ejeren har rwx, så vi vil tilføje 4 + 2 + 1 for at få en værdi på 7. Vi gør det samme for gruppen og det samme for andre. Den endelige oktalværdi er 777. Lad os se på eksemplet hvor vi kun gav læse / skrive tilladelser:
-RW-rw-rw-
Det første oktalnummer bliver 4 + 2, da vi tilføjer læsning og skrivning. Den anden bliver den samme som det tredje oktalnummer. Her har vi en endelig oktalværdi på 666.
Så lad os nu prøve det på den anden side. Sig, vi vil vide, hvilke tilladelser 755 repræsenterer? Nå, det er ret nemt at finde ud af, om du bryder det ned ved individuelle tal. Det første nummer er 7, som vi kun kan få ved at tilføje 4 + 2 + 1, hvilket betyder, at ejeren har læst / skriv / udfører tilladelse. Fem kan kun fås ved at tilføje 4 + 1, hvilket betyder at gruppen og andre brugere har læst og udfører tilladelser.
Forhåbentlig er det en god forklaring på, hvordan man repræsenterer tilladelser i Linux ved hjælp af oktalnumre. Det er ret lige fremad.
Brug chmod til at ændre tilladelser
Nu hvor vi forstår, hvordan man læser tilladelser, lad os tale om, hvordan vi kan ændre dem. Det nemmeste værktøj til at bruge til dette formål er chmod-kommandoen. Sådan fungerer det. Den bedste måde at forklare kommandoen på er at gå gennem et eksempel.
Lad os starte med de tilladelser, vi talte om ovenfor, nemlig:
-RW-rw-rw-
Hvis vi ønskede at tilføje tilladelsen til udførelse for ejer, gruppe og andre, kunne vi gå om det på to måder. Vi kunne bruge symbolmetoden eller oktalmetoden. For symbolmetoden vil vi gøre følgende, som vist nedenfor:
Den nøjagtige kommando er
chmod a + x filnavn
Syntaxen er som følger: bogstaver eller bogstaver, der repræsenterer ejeren ( u ), gruppen ( g ), andre ( o ) eller alle ( a ) efterfulgt af a + for at tilføje tilladelser eller a - for at tage tilladelser væk og derefter brevet til tilladelsen ( r for læsning, w for skrive og x for udførelse).
I ovenstående eksempel tilføjede jeg tilladelsen til alle brugere. Resultatet som du kan se i skærmbilledet ovenfor er en x for ejer, gruppe og andet. Lad os nu sige, at jeg ønskede at fjerne skrive og udføre tilladelser for kun gruppen og andre brugere.
Som du kan se her, plejede jeg at bruge følgende kommando for at opnå dette:
chmod go-wx filnavn
Da jeg vil ændre tilladelserne for gruppe og andre, bruger jeg bogstavet g og brevet o . Jeg vil fjerne tilladelser, så jeg bruger tegnet. Endelig vil jeg fjerne skrive og udføre tilladelser, så jeg bruger w og x . Her er et praktisk lille bord til brug af symboler:
Så det er alt, hvad der er at bruge symbolmetoden. Lad os nu tale om oktalmetoden, som jeg synes at være lidt lettere. Octal er pænt, fordi du kan tilføje eller fjerne tilladelser på én gang.
Hvis vi starter med følgende tilladelser på en fil, lad os se, hvordan vi kan ændre dem ved hjælp af oktalmetoden:
-RW-rw-rw-
Ovenfor kan du se jeg brugte følgende kommando:
chmod 744 filnavn
Dette siger i grunden ejeren får læse / skrive / udføre tilladelse, og gruppen og andre får kun læsetilladelse. Som du kan se, er det nemt at tilføje eller fjerne tilladelser i en enkelt kommando. Lad os fortsætte og sige, at jeg vil ændre tilladelser igen.
Nu brugte jeg den følgende kommando, igen en meget enkel en:
chmod 640 filnavn
Her har vi givet ejeren læse / skrive tilladelser, kun gruppelæs tilladelsen og den anden gruppe ingen tilladelser. Du bruger et nul til at angive ingen tilladelser. Ret simpelt, eh?
Sammenfattende er dette et meget simpelt overblik over Linux-tilladelser, og det kan blive meget mere kompliceret end dette, men for begyndere er det et godt sted at starte. Jeg vil sende flere artikler om mere avancerede tilladelser i fremtiden. Hvis du har spørgsmål, er du velkommen til at kommentere. God fornøjelse!