Når man kører Linux, tænker man sjældent over, hvem der ejer en fil. Men når det drejer sig om at køre en server, ændrer situationen sig. For at øge sikkerheden får serveren sin egen bruger. Det er ikke ualmindeligt, at servere bruger den samme gruppe, f.eks. www-data
. Lad os nu se, hvordan denne funktion fungerer med filer og mapper. Vi vil være særligt opmærksomme på symbolske links, da de kan give problemer, når man bruger usikre indstillinger.
Standarden for filtilladelser kom til Linux fra Unix. Så hvert objekt har en bruger
og en gruppe
, og derudover beskrivesandre
brugeres rettigheder (other).
Tilladelserne består af tre elementer: læs, skriv, udfør. Kommandoen umask
bruges til at ændre tilladelser, men chown-kommandoerne
bruges til at ændre ejer og gruppe direkte. Kommandoen ls
kan bruges til at se de aktuelle tilladelser.
Generel visning af chgrp-kommandoen
:
$ chgrp [options] new_group file_name
Liste over almindelige indstillinger for chgrp-kommandoen
:
-h
- arbejder direkte med selve de symbolske links;--dereference
- arbejder med filer, ikke selve de symbolske links. Bruges som standard;-R
- rekursiv behandling af en mappe med alt dens indhold;-H
- følger symbolske links og ændrer attributter for filer/mapper. Bruges sammen med parameteren -R;
-L
- følg det symbolske link og fortsæt den rekursive behandling. Bruges sammen med parameteren -R;
-P
- når du støder på et symbolsk link, skal du kun behandle det. Bruges sammen med -R-parameteren
og er standardværdien;--reference=file_name
- brug eksempelgruppen;-c
- output ændres kun ved behandling;-v
- udsender oplysninger om hvert behandlet objekt.Det simpleste eksempel på brug af chgrp-kommandoen
. Det følgende ændrer hele www-data-objektet
for filen
i den aktuelle mappe:
$ sudo chgrp www-data file.txt
Og denne ændrer gruppen til www-data
for mappen folder
:
$ sudo chgrp www-data folder
Kommandoen fungerer på en meget forudsigelig måde ved at ændre deres gruppe. Objekterne i mappen forbliver uændrede. Hvis symbolske links håndteres, forbliver deres attributter uændrede, men objektet får en ny gruppe. Denne opførsel svarer til håndteringen af parameteren --dereference
.
For eksempel vil disse kommandoer anvendt på symbolske links fungere som vist på skærmbilledet:
$ sudo chgrp www-data sym_file.txt
Lad os se på, hvordan parameteren -h
, der ændrer attributterne for et symbolsk link, fungerer:
$ sudo chgrp -h www-data sym_file
Gruppen er ikke kun sat til mappen, men også til alle filerne indeni. Bemærk, at adfærden har ændret sig. Når man behandler et symbolsk link, indstilles attributterne nu for selve linket, ikke for objektet.
Lad os se på et par eksempler mere for at se forskellen mellem parametrene -H
og -L.
Husk, at de skal bruges sammen med -R:
$ sudo chgrp -RH www-data folder
Ved brug af -H
er opførslen ved behandling af symbolske links ændret, de håndteres nu, som om funktionerne blev udført separat. Attributterne for referencerne ændres ikke, men det gør attributterne for selve objekterne, og den rekursive behandling stopper, når du skifter til en mappe.
$ sudo chgrp -RL www-data folder
Den udfører én funktion - den ændrer gruppen af filer og mapper.
Når du behandler symbolske links, skal du være yderst forsigtig med ikke at beskadige systemet.