Forstå Linux-tilladelser og chmod-brug

Jeg har taget et kursus i Linux i de sidste par måneder, og et aspekt af Linux , der altid forvirrede mig, var, hvordan tilladelser fungerede. For eksempel, da jeg uploadede en fil til min webserver én gang og fik en fejl, fik jeg besked af min webhost om at ændre filtilladelserne til 755.

Jeg havde ingen anelse om, hvad det betød, selvom ændring af tilladelserne løste problemet. Jeg har nu indset, at Linux -tilladelser ikke er 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 for 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. Når nu disse tilladelser anvendes på en fil, anvendes de i niveauer.

Der er tre niveauer af tilladelser i Linux : ejer, gruppe og andet. Ejeren er den bruger, der ejer filen/mappen, gruppen inkluderer andre brugere i filens gruppe og andre repræsenterer blot alle andre brugere, som ikke er ejeren eller i gruppen.

Læs(Read) , skriv og udfør repræsenteres enten som symbolske tegn eller som oktale tal. For eksempel, hvis du laver 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 en bindestreg eller bogstavet d. Dash betyder, at det er en fil, og d står for mappe. Bemærk, at den første bit også kan være et l , hvis filnavnet er et link. Dernæst er der tre grupper af tre bits. Den første bit i hver gruppe er til læsning, den anden bit er til skrivning og den tredje bit er til udførelse. De første tre bits er til ejeren, de andre tre bits er til gruppen og de tre tredje bits er til andre. Her er en mere visuel forklaring.

Hvis du ser en bindestreg i stedet for et bogstav, betyder det, at ejeren, gruppen eller alle andre brugere ikke har den tilladelse. I eksemplet ovenfor har ejeren, gruppen og alle andre læst skrive- og udførelsestilladelser.

Hvis du ser på outputtet fra ls -l kommandoen, vil du bemærke, at min øvelsestekstfil har følgende tilladelser:

-rw-rw-rw-

Det betyder, at alle kun har læse-/skriverettigheder til filen. Her er et andet eksempel:

drwxr--r--

Ser vi på den første bit, kan vi se, at tilladelserne er til en mappe. Ejeren har læse-/skrive-/udførelsestilladelser, men gruppen og andre brugere har kun læsetilladelse.

Oktaltalsrepræsentation

Så det er sådan, tilladelser vises i Linux ved hjælp af symboler. Den anden måde at repræsentere de samme tilladelser på er ved at bruge oktale tal. Når vi senere bruger chmod-kommandoen, vil du se, at du kan ændre tilladelserne ved at bruge enten symboler eller oktale tal.

Så hvordan repræsenterer Linux læse, skrive og udføre ved hjælp af oktale tal? Dybest set tildeler den bare et nummer til hver tilladelse som vist nedenfor.

Læsetilladelsen er repræsenteret af 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 f.eks. tage eksemplet ovenfor, hvor alle har alle tilladelser:

-rwxrwxrwx

Ejeren har rwx, så vi tilføjer 4 + 2 + 1 for at få en værdi på 7. Vi gør det samme for gruppe og det samme for andre. Den endelige oktale værdi er 777. Lad os tage et kig på eksemplet, hvor vi kun gav læse/skrive-tilladelser:

-rw-rw-rw-

Det første oktale tal vil være 4 + 2, da vi tilføjer læse og skrive. Det andet vil være det samme som det tredje oktale tal. Her har vi en endelig oktal værdi på 666.

Så lad os nu prøve det den anden vej. Sig, at vi vil vide, hvilke tilladelser 755 repræsenterer? Nå, det er ret nemt at finde ud af, hvis du opdeler det efter individuelle tal. Det første tal er 7, som vi kun kan få ved at tilføje 4 + 2 + 1, hvilket betyder, at ejeren har læse-/skrive-/udførelsestilladelse. Fem kan kun opnås ved at tilføje 4 + 1, hvilket betyder, at gruppen og andre brugere har læse- og eksekveringstilladelser.

Forhåbentlig(Hopefully) er det en god forklaring på, hvordan man repræsenterer tilladelser i Linux ved hjælp af oktale tal. Det er overordnet ret ligetil.

Brug af 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 at bruge til dette formål er kommandoen chmod. Sådan fungerer det. Den bedste måde at forklare kommandoen på er at gennemgå et eksempel.

Lad os starte med de tilladelser, vi talte om ovenfor, nemlig:

-rw-rw-rw-

Hvis vi ville tilføje udførelsestilladelsen for ejer, gruppe og andet, kunne vi gøre det på to måder. Vi kunne bruge symbolmetoden eller oktalmetoden. For symbolmetoden ville vi gøre følgende, som vist nedenfor:

Den nøjagtige kommando er

chmod a+x filename

Syntaksen er som følger: bogstavet eller bogstaverne, der repræsenterer ejeren ( u ), gruppen ( g ), anden ( o ) eller alle ( a ) efterfulgt af et + for at tilføje tilladelser eller et for at fjerne tilladelser og derefter bogstavet for tilladelsen ( r for read, w for write og x for execute).

I ovenstående eksempel tilføjede jeg udførelsestilladelsen for alle brugere. Resultatet, som du kan se på skærmbilledet ovenfor, er et x for ejer, gruppe og andet. Lad os nu sige, at jeg ville fjerne skrive- og udførelsestilladelserne for kun gruppen og andre brugere.

Som du kan se her, plejede jeg følgende kommando for at opnå dette:

chmod go-wx filename

Da jeg vil ændre tilladelserne for gruppe og andet, bruger jeg bogstavet g og bogstavet o . Jeg vil fjerne tilladelser, så jeg bruger tegnet – . Til sidst vil jeg fjerne skrive- og køretilladelserne, så jeg bruger w og x . Her er en praktisk lille tabel til symbolbrug:

Så det er alt, hvad der er at bruge symbolmetoden. Lad os nu tale om den oktale metode, som jeg synes er en smule nemmere. Octal er rart, 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 den oktale metode:

-rw-rw-rw-

Ovenfor(Above) kan du se, at jeg brugte følgende kommando:

chmod 744 filename

Dette siger grundlæggende, at ejeren får læse-/skrive-/udførelsestilladelse, og at gruppen og andre kun får læsetilladelse. Som du kan se, er det nemt at tilføje eller fjerne tilladelser i en simpel kommando. Lad os fortsætte og sige, at jeg vil ændre tilladelser igen.

Nu brugte jeg følgende kommando, igen en meget simpel en:

chmod 640 filename

Her har vi givet ejeren læse/skrive tilladelser, gruppen kun læse tilladelse og den anden gruppe ingen tilladelser. Du bruger et nul for at angive ingen tilladelser. Ret simpelt, ikke?

Afslutningsvis er dette en meget enkel oversigt over Linux -tilladelser, og det kan blive meget mere kompliceret end dette, men for begyndere er det et godt sted at starte. Jeg vil poste flere artikler om mere avancerede tilladelser i fremtiden. Hvis du har spørgsmål, er du velkommen til at kommentere. God fornøjelse!



About the author

Jeg er softwareudvikler med over 10 års erfaring. Jeg har specialiseret mig i Mac-programmering og har skrevet flere tusinde linjer kode til forskellige Mac-programmer, inklusive, men ikke begrænset til: TextEdit, GarageBand, iMovie og Inkscape. Jeg har også erfaring med Linux og Windows udvikling. Mine færdigheder som udvikler giver mig mulighed for at skrive omfattende tutorials af høj kvalitet til forskellige softwareudviklingsplatforme - fra macOS til Linux - hvilket gør mine tutorials til det perfekte valg for dem, der ønsker at lære mere om de værktøjer, de bruger.



Related posts