chmod

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

chmod er et dataprogram til å endre filers rettigheter i et Unix-filsystem (av engelsk change mode). Det er et av standardprogrammene i Unix-liknende operativsystemer. Merk at "fil" i Unix-sammenheng betyr en vilkårlig node i mappehierarkiet, for eksempel en mappe eller en vanlig fil. Mange programmeringsspråk har funksjoner som gjør det samme som chmod-programmet, og som typisk også heter chmod.

Filrettigheter i Unix-filsystemer[rediger | rediger kilde]

Filsystemer til bruk i Unix-liknende operativsystemer lagrer et sett av metadata for hver fil, attributter, hvorav rettighetene er de 12 minst signifikante bitene av tallet mode. Bare disse 12 bitene, vist i tabellen nedenfor, kan endres av chmod:

Navn i programmeringsspråket C Oktal verdi definert i POSIX Tekstlig representasjon i programmet ls Forklaring
S_ISUID 04000 ---S------ Fast bruker (setUID)
S_ISGID 02000 ------S--- Fast gruppe (setGID)
S_ISVTX 01000 ---------T Klebrig (sticky)
S_IRUSR 00400 -r-------- Eier kan lese
S_IWUSR 00200 --w------- Eier kan skrive
S_IXUSR 00100 ---x------ Eier kan kjøre
S_IRGRP 00040 ----r----- Gruppemedlemmer kan lese
S_IWGRP 00020 -----w---- Gruppemedlemmer kan skrive
S_IXGRP 00010 ------x--- Gruppemedlemmer kan kjøre
S_IROTH 00004 -------r-- Andre kan lese
S_IWOTH 00002 --------w- Andre kan skrive
S_IXOTH 00001 ---------x Andre kan kjøre

Betydning[rediger | rediger kilde]

  • Hvis en bruker både eier fila og er med i dens gruppe, bestemmes lese- skrive- og kjøretilgangen av en eller-funksjon av det som gjelder for "bruker" og "gruppe".
  • Hvis en bruker hverken eier fila eller er med i dens gruppe, gjelder lese- skrive- og kjøretilgangen som gjelder for "andre".
  • Kjøretilgangen til en vanlig fil bestemmer om den er et program, eventuelt skript.
  • Kjøretilgangen til en mappe bestemmer om den kan søkes gjennom for å finne innholdet.
  • Når et program eller skript startes, arver prosessen normalt brukeren og gruppa til personen som startet det, men hvis "fast bruker" eller "fast gruppe" er satt, arves i stedet henholdsvis filas bruker eller gruppe. NB: Linux ignorerer "fast bruker" og "fast gruppe" for skript.
  • Når en fil opprettes, arver den normalt brukeren og gruppa til prosessen som opprettet den, men hvis mappa over har "fast bruker" eller "fast gruppe", arves dens bruker og/eller gruppe i stedet. NB: På BSD arves gruppe alltid fra mappa over. På Linux arves bruker aldri fra mappa over.
  • Symbolske lenker har alltid alle rettigheter satt, tilgangen til målet bestemmes av målet.

Bruksanvisning[rediger | rediger kilde]

chmod [valg] rettigheter fil1 ...

Bytt ut "rettigheter" med et av følgende 3 alternativer:

  1. En oktal sum av de oktale verdiene fra tabellen ovenfor. (Sifrene blir de samme selv om man tenker utelukkende i titallsystemet og kanskje ikke har hørt om oktale tall.)
  2. En komma-separert liste av strenger på formen [ugoa][-+=][rwxXst], for eksempel "u+x,go-r+x". Dette er den eneste måten å endre noen få rettigheter uten å endre alle. Her betyr "a" det samme som "ugo".
  3. --reference=FIL - Bruk de samme rettighetene som FIL har.

Tips: Kommandoen "ls -l" viser egenskaper til filer, der første kolonne gir en tekstlig representasjon av mode-tallet. Av disse 10 bokstavene består rettighetene av de 9 siste. Nedenfor er et eksempel som viser hvor de 10 bokstavene kommer fra:

type:       bruker:     gruppe:     andre:
  d           rwx         rw-         r--
0+4+0+0=4   4+2+1=7     4+2+0=6     4+0+0=4

Eksempler[rediger | rediger kilde]

Sett fast gruppe på "mappe1" og "mappe2" og gjør den skrivbar for bruker og gruppe og lesbar for alle:

chmod 2775 mappe1 mappe2

Gjør "fil1" og "fil2" lesbare og skrivbare (men ikke kjørbare) for alle:

chmod 666 fil1 fil2

Gjør "øvremappe" og alle dens filer (og mapper) i alle undermapper lesbare, og skrivbare for eier:

chmod -R a+r,u+w øvremappe

Fjern alle rettigheter for gruppe og andre til "fil1" og "mappe1" (slik at bare rettigheter for bruker gjenstår):

chmod go-rwx fil1 mappe1

Gjør kun mapper kjørbare, også i alle undermapper:

find øvremappe -type d -exec chmod a+x {} \;

Filrettigheter utenfor chmods kontroll[rediger | rediger kilde]

  • Noen filsystemer har ikke Unix-filattributter, for eksempel FAT og NTFS. Unix-drivere for slike filsystemer må emulere disse attributtene. Det er vanlig at attributtene settes via argumenter til mount-kommandoen når filsystemet monteres, uten at de senere kan endres av chmod (hverken varig eller midlertidig).
  • Linux støtter utvidede attributter. Disse er strenger av formen navnerom.navn:verdi, og brukes blant annet til å lagre sikkerhetskontekst for SELinux og access control lists.

Se også[rediger | rediger kilde]

  • chown – endre eier
  • chgrp – endre gruppe
  • chattr – endre utvidede attributter
  • chdir – endre gjeldende mappe
  • chroot – endre gjeldende rotmappe