I Linux-systemer er det slik at alle filer og mapper har en tilknytning til en bruker og en gruppe. For å endre hvem som eier disse filene og mappene, kan man bruke kommandoen `chown`. Her skal vi se på hvordan dette fungerer.
Hver fil har en eier og en tilhørende gruppe
Linux er et operativsystem som tillater flere brukere å være aktive samtidig. Dette betyr at flere brukerkontoer kan defineres, og at flere brukere kan logge seg på samme maskin, enten samtidig eller uavhengig av hverandre.
For å holde oversikt over hvilke filer som tilhører hvilken bruker, og for å ivareta sikkerheten, benytter Linux et system med eierskap. Hver fil er knyttet til en eier (en bruker) og en gruppe.
Når en ny fil opprettes, vil eieren automatisk være brukeren som opprettet filen. Gruppen som filen tilhører er den gjeldende gruppen til brukeren. Både brukere og grupper har navn og en numerisk identifikator, henholdsvis bruker-ID (UID) og gruppe-ID (GID).
Dette betyr at når du lager en fil, så eier du den, og den tilhører din nåværende gruppe. Som regel er dette gruppen du er logget på som, ofte en gruppe som har samme navn som brukernavnet ditt, og som ble opprettet samtidig som brukerkontoen din.
`chown`-kommandoen gir deg muligheten til å endre disse eierskapsverdiene. Du kan endre filens eier, gruppe, eller begge deler samtidig. Eieren av en fil kan endre gruppeeierskapet, men kun `root` brukeren har tillatelse til å endre brukereierskapet. Dette er for å unngå at en bruker uforvarende «adopterer» en fil som tilhører en annen bruker.
Hvorfor endre eierskap?
Her er noen situasjoner der det kan være aktuelt å endre eierskapet til filer og mapper:
- Ved overføring av filer mellom Linux- eller Unix-baserte systemer kan det være nødvendig å tilpasse bruker- og gruppetilknytningen til den nye maskinen.
- Når en ansatt slutter i en organisasjon, kan ansvaret for dennes filer overføres til en annen medarbeider.
- Ved bruk av skript som skal kjøres av en spesifikk bruker.
- Når en fil eller mappe opprettes som `root`, men skal være tilgjengelig for en bestemt bruker.
Se dine grupper, UID og GID
For å se hvilke grupper du er medlem av, kan du bruke kommandoen `groups`.
groups
For å se en liste over gruppene dine, samt de tilhørende numeriske IDene, samt din UID og GID, kan du bruke `id`-kommandoen:
id
Du kan bruke ulike flagg med `id`-kommandoen for å finjustere utdataene:
- `-u`: Viser din UID.
- `-g`: Viser din effektive (nåværende) GID.
- `-nu`: Viser brukernavnet ditt.
- `-ng`: Viser navnet på din nåværende gruppe.
id -u
id -g
id -nu
id -ng
Se bruker- og gruppeeierskap for en fil
For å se eieren og gruppen for en fil eller mappe, bruker du flagget `-l` (lang liste) med `ls`-kommandoen.
ls -l
I utdataene vises brukernavnet «dave» to ganger. Den første forekomsten viser filens eier, mens den andre viser gruppen filen tilhører. I dette tilfellet tilhører filen brukeren `dave` og gruppen `dave`.
Som standard vil en ny Linux-bruker bli lagt til i en privat gruppe med samme navn som brukernavnet. Dette betyr at brukeren er det eneste medlemmet i denne gruppen.
I dette eksemplet eies den kjørbare filen av brukeren `mary`, og gruppen er `mary`s private gruppe.
ls -l
Denne filen eies av brukeren `oscar`, og tilhører gruppen `researchlab`. Dette betyr at andre medlemmer av gruppen `researchlab` kan få tilgang til filen, i henhold til de fastsatte filrettighetene.
Endre brukereierskap
La oss se på noen eksempler. Følgende kommando endrer brukereierskapet til `while.c`-filen til brukeren `mary`.
sudo chown mary while.c
Vi kan bruke `ls`-kommandoen for å bekrefte endringene.
ls -l while.c
`chown`-kommandoen kan også brukes for å endre eierskapet til flere filer samtidig.
sudo chown mary getval.c global.c goto.c
Dette vil endre brukereierskapet for alle tre filene.
ls -l getval.c global.c goto.c
Du kan bruke jokertegn for å velge grupper av filer. Følgende kommando vil endre brukereierskapet til alle filer som begynner med bokstaven «c».
sudo chown mary c*.*
Alle disse filene vil nå ha `mary` som eier. Merk at gruppeeierskapet ikke er endret.
ls -l mary c*.*
La oss endre eierskapet til en mappe. Vi oppgir bare mappenavnet til `chown`-kommandoen istedenfor et filnavn.
sudo chown mary ./archive/
For å sjekke eierskapet for en mappe, bruker vi `ls`-kommandoen, men legger til flagget `-d` (directory). Dette viser egenskapene til selve mappen, ikke innholdet i mappen.
ls -l -d ./archive/
For å endre eierskapet til alle filene i en mappe, kan du bruke flagget `-R` (rekursivt). Følgende kommando endrer brukereierskapet for alle filene i mappen `archive`.
sudo chown -R mary ./archive/
La oss se på filene i `archive`-mappen:
ls -l ./archive/
Som forventet, eies alle filene nå av `mary`.
Endre gruppeeierskap
Det finnes flere måter å endre gruppeeierskapet på.
For å endre både bruker- og gruppeeierskapet samtidig, oppgir du det nye brukernavnet og det nye gruppenavnet, separert med et kolon `»:»`. Gruppen må allerede eksistere.
sudo chown mary:researchlab charm.c
Både brukeren og gruppen filen tilhører, er nå endret.
ls -l charm.c
En snarvei for å endre gruppeeierskapet til den nye eierens nåværende gruppe er å utelate gruppenavnet og kun skrive kolon.
sudo chown mary: caps.c
ls -l caps.c
Både bruker- og gruppeeierskapet er endret til `mary`.
Hvis du kun ønsker å endre gruppeeierskapet, setter du et kolon foran det nye gruppenavnet og utelater brukernavnet. Brukereierskapet vil da ikke endres.
sudo chown :researchlab at.c
ls -l at.c
Gruppeeierskapet er endret, men brukereierskapet forblir det samme.
Bruk av UID og GID med `chown`
Du kan også bruke de numeriske verdiene for UID og GID med `chown`-kommandoen. Følgende kommando setter bruker- og gruppeeierskapet til `mary`.
sudo chown 1001:1001 at.c
ls -l at.c
Eierskap er viktig
I Linux er eierskap en svært viktig del av sikkerheten, og filrettighetene er en annen viktig del. Ved å bruke `chown` og `chmod` kan du sørge for trygg filhåndtering i systemet ditt.