Jeg har tatt kurs på Linux de siste månedene, og et aspekt av Linux som alltid forvirret meg, var hvordan tillatelser fungerte. For eksempel, når jeg lastet opp en fil til webserveren en gang og fikk en feil, ble jeg fortalt av min webverten å endre filtillatelsene til 755.
Jeg hadde ingen anelse om hva det betydde, selv om endringen av tillatelsene løste problemet. Jeg har nå forstått at Linux-tillatelser ikke er så kompliserte, du må bare forstå systemet. I denne artikkelen snakker jeg om Linux-tillatelser på et høyt nivå og viser deg hvordan du bruker chmod-kommandoen til å endre tillatelser for filer og mapper.
Linux Tillatelser & Nivåer
I Linux er det i utgangspunktet tre tillatelser som du vanligvis trenger å bekymre deg om: lese, skrive og utføre. Alle tre av disse er ganske selvforklarende. Nå når disse tillatelsene blir brukt på en fil, blir de brukt i nivåer.
Det er tre nivåer av tillatelser i Linux: eier, gruppe og andre. Eieren er brukeren som eier filen / mappen, gruppen inneholder andre brukere i filgruppen og andre representerer bare alle andre brukere som ikke er eier eller i gruppen.
Les, skriv og utfør er representert som enten symbolske tegn eller som oktale tall. For eksempel, hvis du gjør en ls -l i en katalog med noen filer, vil du se den symbolske tegnrepresentasjonen av tillatelsene.
Tillatelsene er skrevet som følger: Den første bit er enten et dash eller bokstaven d. Dash betyr at det er en fil og d står for katalogen. Merk at den første biten også kan være en l hvis filnavnet er en lenke. Deretter er det tre grupper på tre biter. Den første biten i hver gruppe er for å lese, den andre biten er for skrive og den tredje biten er for å utføre. De tre første bitene er for eieren, de andre tre bitene er for gruppen og de tredje tre bitene er for andre. Her er en mer visuell forklaring.
Hvis du ser et dash i stedet for et brev, betyr det at eieren, gruppen eller alle andre brukere ikke har tillatelse. I eksemplet ovenfor har eieren, gruppen og alle andre lest skrive og utfører tillatelser.
Hvis du ser på utgangen fra ls -l-kommandoen, vil du legge merke til at øvelses tekstfilen har følgende tillatelser:
-rw-rw-rw-
Dette betyr at alle bare har lese / skrive tillatelser for filen. Her er et annet eksempel:
drwxr - r--
Når vi ser på første bit, kan vi se at tillatelsene er for en katalog. Eieren har lese / skrive / utføre tillatelser, men gruppen og andre brukere har bare lesetillatelse.
Octal nummerrepresentasjon
Så det er hvordan tillatelser vises i Linux ved hjelp av symboler. Den andre måten å representere de samme rettighetene til er å bruke oktale tall. Når vi bruker kommandoen chmod senere, ser du at du kan endre tillatelsene ved hjelp av enten symboler eller oktalnumre.
Så hvordan representerer Linux lese, skrive og utføre ved hjelp av oktale tall? I utgangspunktet tildeler den bare et nummer til hver tillatelse som vist nedenfor.
Lestillatelsen er representert ved 4, skriv med 2 og utfør med 1. Alt du trenger å gjøre er å legge dem opp for å få octal-tillatelsen. For eksempel, la oss ta eksemplet ovenfor der alle har alle tillatelser:
-rwxrwxrwx
Eieren har rwx, så vi vil legge til 4 + 2 + 1 for å få en verdi på 7. Vi gjør det samme for gruppen og det samme for andre. Den endelige oktalverdien er 777. La oss se på eksemplet der vi bare ga lese / skrive-tillatelser:
-rw-rw-rw-
Det første oktalnummeret vil være 4 + 2 siden vi legger til les og skriv. Den andre blir den samme som det tredje oktalnummeret. Her har vi en endelig oktalverdi på 666.
Så nå, la oss prøve den den andre veien. Si at vi vil vite hvilke tillatelser 755 representerer? Vel, det er ganske enkelt å finne ut om du bryter det ned av individuelle tall. Det første nummeret er 7, som vi kun kan få ved å legge til 4 + 2 + 1, noe som betyr at eieren har lese / skrive / utføre tillatelse. Fem kan bare fås ved å legge til 4 + 1, noe som betyr at gruppen og andre brukere har lest og utfører tillatelser.
Forhåpentligvis er det en god forklaring på hvordan du representerer tillatelser i Linux ved hjelp av oktale tall. Det er ganske rett fremover.
Bruk chmod til å endre tillatelser
Nå som vi forstår hvordan du leser tillatelser, la oss snakke om hvordan vi kan endre dem. Det enkleste verktøyet til å bruke til dette formålet er chmod-kommandoen. Slik fungerer det. Den beste måten å forklare kommandoen på er å gå gjennom et eksempel.
La oss starte med tillatelsene vi snakket om ovenfor, nemlig:
-rw-rw-rw-
Hvis vi ønsket å legge til tillatelsen for eier, gruppe og andre, kunne vi gå om det på to måter. Vi kunne bruke symbolmetoden eller oktalmetoden. For symbolmetoden vil vi gjøre følgende, som vist nedenfor:
Den nøyaktige kommandoen er
chmod a + x filnavn
Syntaxen er som følger: bokstaven eller bokstavene som representerer eieren ( u ), gruppen ( g ), andre ( o ) eller alle ( a ) etterfulgt av a + for å legge til tillatelser eller a - for å ta bort tillatelser og deretter brevet for Tillatelsen ( r for å lese, w for skrive og x for å utføre).
I eksemplet ovenfor har jeg lagt til tillatelsen for alle brukere. Resultatet som du ser på skjermbildet ovenfor, er en x for eier, gruppe og andre. La oss si at jeg ønsket å fjerne skrive og utføre tillatelser for bare gruppen og andre brukere.
Som du kan se her, pleide jeg å følgende kommando for å oppnå dette:
chmod go-wx filnavn
Siden jeg vil endre tillatelsene for gruppe og andre, bruker jeg bokstaven g og brevet o . Jeg vil fjerne tillatelser, så jeg bruker tegnet. Til slutt vil jeg fjerne skrive og utføre tillatelser, så jeg bruker w og x . Her er et praktisk lite bord for symbolbruk:
Så det er alt som er å bruke symbolmetoden. La oss nå snakke om oktalmetoden, som jeg synes å være litt enklere. Octal er fint fordi du kan legge til eller fjerne tillatelser på en gang.
Hvis vi starter med følgende tillatelser på en fil, la oss se hvordan vi kan endre dem ved hjelp av oktalmetoden:
-rw-rw-rw-
Over, kan du se jeg brukte følgende kommando:
chmod 744 filnavn
Dette sier i utgangspunktet at eieren får lese / skrive / utføre tillatelse, og gruppen og andre får bare lesetillatelse. Som du kan se, er det enkelt å legge til eller fjerne tillatelser i en enkel kommando. La oss fortsette og si at jeg vil endre tillatelser igjen.
Nå brukte jeg følgende kommando, igjen en veldig enkel en:
chmod 640 filnavn
Her har vi gitt eierens lese / skrive-tillatelser, kun gruppesøk tillatelsen og den andre gruppen ingen tillatelser. Du bruker null for å ikke angi noen tillatelser. Ganske enkelt, eh?
Til slutt er dette en veldig enkel oversikt over Linux-tillatelser, og det kan bli mye mer komplisert enn dette, men for nybegynnere er det et godt sted å starte. Jeg legger inn flere artikler om mer avanserte tillatelser i fremtiden. Hvis du har noen spørsmål, vær så snill å kommentere. Nyt!