Når man kjører Linux, tenker man sjelden på hvem som eier en fil. Når det gjelder kjøring av en server, endrer imidlertid situasjonen seg. For å øke sikkerheten får serveren sin egen bruker. Det er ikke uvanlig at servere bruker samme gruppe, for eksempel www-data
. La oss nå se hvordan denne funksjonen fungerer med filer og kataloger. Vi skal være spesielt oppmerksomme på symbolske lenker, da de kan forårsake problemer når du bruker usikre innstillinger.
Standarden for filrettigheter kom til Linux fra Unix. Så hvert objekt har en bruker
, gruppe
i tillegg til dette beskriver rettighetene tilandre
brukere(andre).
Tillatelsene består av tre elementer: lese, skrive, utføre. Kommandoen umask
brukes til å endre rettigheter, men chown-kommandoene
brukes til å endre eier og gruppe direkte. Kommandoen ls
kan brukes til å vise gjeldende tillatelser.
Generell visning av chgrp-kommandoen
:
$ chgrp [options] new_group file_name
Liste over vanlige alternativer for chgrp-kommandoen
:
-h
- arbeider direkte med selve de symbolske koblingene;--dereference
- arbeider med filer, ikke symbolske lenker. Brukes som standard;-R
- rekursiv behandling av en katalog med alt dens innhold;-H
- følger symbolske lenker og endrer attributtene til filer/kataloger. Brukes sammen med parameteren -R;
-L
- følg den symbolske lenken og fortsett rekursiv behandling. Brukes sammen med parameteren -R
;-P
- når du støter på en symbolsk lenke, behandles bare den. Brukes sammen med -R-parameteren
, er standardverdien;--reference=file_name
- bruk eksempelgruppen;-c
- utdata endres bare ved behandling;-v
- skriver ut informasjon om hvert behandlet objekt.Det enkleste eksemplet på bruk av chgrp-kommandoen
. Det følgende endrer hele www-data-objektet
for filen
i den aktuelle mappen:
$ sudo chgrp www-data file.txt
Og denne endrer gruppen til www-data
for mappen mappe
:
$ sudo chgrp www-data folder
Kommandoen fungerer på en svært forutsigbar måte ved å endre gruppen. Objektene i mappen forblir uendret. Hvis symbolske lenker håndteres, forblir attributtene deres uendret, men objektet får en ny gruppe. Denne oppførselen ligner på håndteringen av parameteren --dereference
.
For eksempel vil disse kommandoene anvendt på symbolske lenker fungere som vist i skjermbildet:
$ sudo chgrp www-data sym_file.txt
La oss se på hvordan parameteren -h
endrer attributtene til en symbolsk lenke:
$ sudo chgrp -h www-data sym_file
Gruppen er ikke bare satt til katalogen, men også til alle filene i den. Legg merke til at oppførselen har endret seg: Når du behandler en symbolsk lenke, settes nå attributtene for selve lenken, ikke for objektet.
La oss se på et par eksempler til for å se forskjellen mellom -H-
og -L-parametrene
. Husk at de må brukes sammen med -R:
$ sudo chgrp -RH www-data folder
Ved bruk av -H
har oppførselen ved behandling av symbolske lenker endret seg, og de håndteres nå som om funksjonene ble kjørt separat. Attributtene til referansene endres ikke, men det gjør attributtene til selve objektene, og den rekursive behandlingen stopper når du bytter til en annen katalog.
$ sudo chgrp -RL www-data folder
Den utfører én funksjon - den endrer gruppen av filer og kataloger.
Når du behandler symbolske lenker, bør du være ekstremt forsiktig så du ikke skader systemet.