Fil-rettigheder og Linux' brugersystem

Fra Debianguiden
Skift til: Navigation, Søgning

En ting der er svært at forstå som begynder, er Linux' brugersystem og hvordan man sørger for at ens filer har de rigtige rettigheder. Derfor vil vi nu gå i dybden med dette, og forklare det med eksempler der kan lette forståelsen.

Brugeren, gruppen og de andre

Enhver fil på dit Linux system, indeholder informationer om hvem der ejer den, hvilken gruppe den er en del af - og hvad "andre" har af rettigheder til den. Det lyder ret uforståeligt, derfor kigger vi på et konkret eksempel:

bruger@debian:~$ ls -l minfil.txt
-rw-r--r--    1 lise      lise             22 21 maj 08:33 minfil.txt

Det er nemmest at læse filen bagfra. Filen hedder minfil.txt. Filen blev lavet 21. maj kl. 08:33. Tallet 22 fortæller os at filen indeholder 22 bytes.

Nu er det vigtigt at følge med; de 2 navne lise og lise er ikke bare en tilfældighed. Det første navn fra venstre er brugeren som filen er ejet af, det andet navn er gruppen som filen er en del af. Disse navne er vigtige at huske når man skal kigge på det sværeste i linjen - nemlig -rw-r--r--.

Det første tegn, - fortæller os noget om filtypen, en fil betegnes ved - mens en mappe betegnes ved d ("directory").

De næste 3 tegn, rw- er BRUGERENS rettigheder. D.v.s. lise har læse ("r", read) og skrive ("w", write) rettigheder. Altså, brugeren lise kan både læse fra filen, og skrive til den. Det sidste af de 3 tegn, som er en almindelig streg, er et "felt" der endnu ikke er udfyldt. Det tegn som man kunne have set her er tegnet for eksekverbare rettigheder ("x", eXecute). Eftersom der står -, betyder det at brugeren lise IKKE har adgang til at eksekvere filen. Dette betyder ikke så meget, eftersom det ikke giver meget mening at eksekvere en txt (tekst) fil.

De efterfølgende 3 tegn, r--, skal læses på samme måde som forklaret før, men dette gælder for GRUPPPEN og ikke for brugeren. D.v.s. det gælder i dette tilfælde for gruppen lise (du tror måske dette er et brugernavn, men det er det ikke. Der kan være flere brugere med i en gruppe). r-- betyder her, at gruppen kun har læse rettigheder til filen.

De sidste 3 tegn, r--, skal igen læses på samme måde. Men denne gang gælder det for ANDRE. D.v.s. alle andre brugere som ikke er ejeren af filen, eller med i gruppen. F.eks. er brugeren martin en af dem der passer ind her. r-- betyder derfor, at andre brugere kun har læse rettigheder til filen.

Man kan ændre på filers og mappers rettigheder, der er meget fleksibilitet i systemet og samtidig er det overskueligt. Læs næste afsnit for hvordan du ændrer disse rettigheder.

Ændring af rettigheder på filer og mapper

Der er 2 programmer til at ændre rettigheder på filer og mapper, disse er 'chmod' og 'chown'. Førstnævnte, 'chmod', ("change mode") bruges til at ændre selve rettighederne på filen, d.v.s. de tegn som du læste om i forrige afsnit, f.eks. "-rw-r--r--". 'chown', ("change owner"), bruges til at skifte ejeren af filen og gruppen.

Lad os kigge på vores eksempel fra før:

bruger@debian:~$ ls -l minfil.txt
-rw-r--r--    1 lise      lise             22 21 maj 08:33 minfil.txt

Vi starter med det mest simple program, nemlig 'chown'. Forestil dig en situation hvor vil vil have at brugeren martin ejer filen i stedet:

debian:~# chown martin minfil.txt

Bemærk at dette bliver gjort som root. Vi kigger nu på filen igen:

bruger@debian:~$ ls -l minfil.txt
-rw-r--r--    1 martin      lise             22 21 maj 08:33 minfil.txt

Filen har nu ændret sin bruger til martin, det betyder at brugeren som ejede filen før, lise, ikke længere kan skrive til filen. Men lise's gruppe er stadig påhæftet filen, med 'chown' kan vi ændre brugeren og gruppen samtidig:

debian:~# chown martin:martin minfil.txt

Efterfølgende vil filen se således ud:

bruger@debian:~$ ls -l minfil.txt
-rw-r--r--    1 martin      martin             22 21 maj 08:33 minfil.txt

Nu skal vi kigge på et program der er lidt sværere at forstå til at starte med, nemlig 'chmod'. 'chmod' har forskellige metoder til at ændre rettigheder på. Vi starter med det mest simple og fortsætter med vores eksempel fra før. Lad os antage, at vi vil gøre filen skrivebeskyttet:

martin@debian:~$ chmod u-w minfil.txt
-rw-r--r--    1 martin      martin             22 21 maj 08:33 minfil.txt

Det første u du ser her, betyder user. Vi ændrer altså rettighederne for ejeren af filen. -w (læses; minus w) fjerner skrive rettighederne på filen. Prøv selv at gør det samme og tjek filens rettigheder efter du har gjort det. w vil forsvinde, og du kan ikke længere skrive til filen:

martin@debian:~$ echo "foo" > minfil.txt
bash: minfil.txt: Permission denied

Her følger et par andre eksempler

Tabel over simple chmod-kommandoer
Kommando Beskrivelse
chmod a+r <filnavn> Giver læse rettigheder til alle (ejer, gruppe og andre)
chmod u+w <filnavn> Giver skrive rettigheder til ejeren af filen
chmod g+x <filnavn> Giver eksekver-rettigheder til gruppen.
chmod o+r <filnavn> Give læse-rettigheder til andre (o = others).