I denne hurtige vejledning vil vi se, hvordan vi kan bruge chmod-kommandoen i en Ubuntu-maskine til at finde, ændre og fjerne brugertilladelser fra specifikke filer, der findes i brugerens filsystem. Lad os lege os igennem forskellige betingelser, så vi kan mestre grundlæggende chmod-kommandoer, som kan gøre vores hverdag lettere med Ubuntu.
Linux-tilladelser
Linux-tilladelser er et stort sæt regler, som er enkle at forstå, hvis vi fatter de grundlæggende rettigheder. De tre hovedpunkter, som vi skal forstå for at vide, hvordan Linux-tilladelser fungerer, er:
Der er to grundlæggende elementer i Linux Filesystem:
- Kataloger
- Filer
Der er tre handlinger, der kan udføres:
- Læse
- Skrive
- Skriv
- Udføre. Ud over at udføre scripts er de samme handlinger nødvendige for at oprette filer og andre mapper i den
Brugere, der kan udføre disse handlinger, er:
- Ejer af filen
- Gruppe af ejeren af filen
- Brugere, der ikke er tilknyttet ejergruppen eller ejeren selv
For at se tilladelser relateret til en fil skal du køre følgende kommando:
Her er, hvad vi får tilbage med denne kommando:
Find tilladelse til filer
I outputtet præsenterer de første 10 tegn tilladelsen til filen:
Ændring af tilladelser
Syntaksen for ændring af tilladelser til en fil ser således ud:
Oktal repræsentation for tilladelser
Vi kan præsentere tilladelser som et oktaltal tal. Hvis vi f.eks. vil indstille læse-, skrive- & udførelsestilladelser til ejeren, læse- & skrivetilladelser til dennes gruppe og ingen tilladelser til andre til en hello.txt-fil, vil vi udføre følgende kommando:
Når vi udfører ovenstående kommando og forsøger at læse en fil med en ikke-ejerkonto ved hjælp af følgende kommando:
Vi får følgende fejl:
Men hvor kommer dette nummer fra? Hvert ciffer i dette tal repræsenterer et sæt tilladelser. Lad os se, hvordan de blev udledt:
- 0: Betyder ingen tilladelse
- 1: Betyder udførelsestilladelse
- 2: Betyder skrivetilladelse
- 4: Betyder læsetilladelse
For at tildele læse-, skrive- & udførelsestilladelser til ejeren, tildelte vi ham tallet 7(= 4 + 2 + 1). Lad os forstå dette bedre i en tabel med cifre:
Tal | Binary | Læse | Skrive | Udføre | |
0 | 000 | NOK | NOK | NOK | |
1 | 001 | NEJ | NEJ | JA | |
2 | 010 | NEJ | NEJ | JA | NEJ |
3 | 011 | NEJ | JA | JA | |
4 | 100 | JA | NEJ | NEJ | |
5 | 101 | JA | NEJ | JA | |
6 | 110 | JA | JA | Ja | nej |
7 | 111 | Ja | Ja | Ja |
Ovenstående tabel er meget tydelig med hensyn til, hvad hver enkelt repræsenterer i form af filtilladelser.
Karakterrepræsentation for tilladelser
Vi kan præsentere tilladelser som et oktaltal. For at indstille læse-, skrive- & udførelsestilladelser for ejeren, læse- & skrivetilladelser for dennes gruppe og ingen tilladelser for andre til en hello.txt-fil udfører vi f.eks. følgende kommando:
For at tilføje tilladelser til en eksisterende bruger kan vi også udføre:
Her blev skrivetilladelsen tildelt til brugergruppen for ejeren af filen.
Rekursive tilladelsesændringer
Vi kan også ændre tilladelser for filer, der findes i en bestemt mappe, med en enkelt kommando. Hvis du vil ændre tilladelserne for hver enkelt fil og mappe i en given mappe på én gang, skal du bruge sudo chmod med -R:
Vi kan se følgende output, som tydeligt afspejler ændringen i filtilladelserne:
Rekursivt ændre filtilladelser
Slutning
I denne lektion har vi set på, hvordan vi kan ændre en filtilladelser og om nødvendigt gøre det rekursivt. Vi forstod de grundlæggende begreber bag hvordan Linux-tilladelser, som kan hjælpe os meget i vores daglige arbejde.