Adesea, atunci când rulează Linux, utilizatorii se gândesc rar la cine deține un fișier. Cu toate acestea, când vine vorba de rularea unui server, situația se schimbă. Pentru a spori securitatea, serverul primește propriul său utilizator. Nu este neobișnuit ca serverele să utilizeze același grup, cum ar fi www-data
. În continuare, să vedem cum funcționează această funcție cu fișierele și directoarele. Vom acorda o atenție deosebită linkurilor simbolice, deoarece acestea pot cauza probleme atunci când se utilizează setări nesigure.
Standardul de permisiuni pentru fișiere a venit la Linux de la Unix. Deci, fiecare obiect are un utilizator
, grup în
plus față de aceasta descrie drepturilealtor
utilizatori(alte
). Permisiunile constau din trei elemente: citire, scriere, executare. Comanda umask
este utilizată pentru a schimba permisiunile, dar comenzile chown
sunt utilizate pentru a schimba direct proprietarul și grupul. Comanda ls
poate fi utilizată pentru a vizualiza permisiunile curente.
Vedere generală a comenzii chgrp
:
$ chgrp [options] new_group file_name
Lista opțiunilor comune pentru comanda chgrp
:
-h
- lucrează direct cu legăturile simbolice în sine;--dereference
- lucrează cu fișiere, nu cu legăturile simbolice în sine. Utilizate implicit;-R
- prelucrarea recursivă a unui director cu tot conținutul său;-H
- urmărește legătura simbolică și modifică atributele fișierului/directorului. Utilizat împreună cu parametrul -R
;-L
- urmărește legătura simbolică și continuă procesarea recursivă. Utilizat împreună cu parametrul -R
;-P
- atunci când întâlnește o legătură simbolică, o procesează numai pe aceasta. Folosit împreună cu parametrul -R
, este valoarea implicită;--reference=file_name
- utilizează grupul de exemple;-c
- ieșirea se modifică numai la procesare;-v
- emite informații despre fiecare obiect procesat.Cel mai simplu exemplu de utilizare a comenzii chgrp
. Următorul schimbă întregul obiect www-data
pentru fișierul
din folderul curent:
$ sudo chgrp www-data file.txt
Iar acesta schimbă grupul în www-data
pentru folderul folder
:
$ sudo chgrp www-data folder
Comanda funcționează într-un mod foarte previzibil, schimbându-le grupul. Obiectele din folder rămân neschimbate. Dacă sunt gestionate legăturile simbolice, atributele lor rămân neschimbate, dar obiectul primește un grup nou. Acest comportament este similar cu gestionarea parametrului --dereference
.
De exemplu, aceste comenzi aplicate legăturilor simbolice vor funcționa așa cum se arată în captura de ecran:
$ sudo chgrp www-data sym_file.txt
Să aruncăm o privire la modul în care ar funcționa parametrul -h
care modifică atributele unei legături simbolice:
$ sudo chgrp -h www-data sym_file
Grupul a fost setat nu numai pentru director, ci și pentru toate fișierele din acesta. Rețineți că comportamentul s-a schimbat, acum, la procesarea unei legături simbolice, atributele sunt setate pentru legătura în sine, nu pentru obiect.
Pentru a vedea diferența dintre parametrii -H
și -L
, să ne mai uităm la câteva exemple. Reamintim că aceștia trebuie să fie utilizați împreună cu -R:
$ sudo chgrp -RH www-data folder
Folosind -H
, comportamentul la procesarea legăturilor simbolice s-a schimbat, acestea fiind acum tratate ca și cum funcțiile ar fi executate separat. Atributele referințelor nu se modifică, ci atributele obiectelor în sine, iar procesarea recursivă se oprește atunci când treceți la un director.
$ sudo chgrp -RL www-data folder
Aceasta îndeplinește o singură funcție - modifică grupul de fișiere și directoare.
Atunci când procesați legături simbolice, trebuie să fiți extrem de atenți pentru a nu deteriora sistemul.