Pri používaní systému Linux používatelia často zriedkavo premýšľajú o tom, kto je vlastníkom súboru. Keď však ide o prevádzku servera, situácia sa mení. Na zvýšenie bezpečnosti získava server vlastného používateľa. Nezriedka sa stáva, že servery používajú rovnakú skupinu, napríklad www-data
. Ďalej sa pozrime, ako táto funkcia pracuje so súbormi a adresármi. Osobitnú pozornosť budeme venovať symbolickým odkazom, pretože pri použití nezabezpečených nastavení môžu spôsobiť problémy.
Štandard oprávnení súborov prišiel do Linuxu z Unixu. Každý objekt má teda svojho používateľa
, skupina
okrem toho popisuje právaostatných
používateľov(other)
. Oprávnenia sa skladajú z troch položiek: čítanie, zápis, spustenie. Na zmenu oprávnení sa používa príkaz umask
, ale na priamu zmenu vlastníka a skupiny sa používajú príkazy chown
. Na zobrazenie aktuálnych oprávnení možno použiť príkaz ls
.
Všeobecné zobrazenie príkazu chgrp
:
$ chgrp [options] new_group file_name
Zoznam bežných možností príkazu chgrp
:
-h
- práca priamo so samotnými symbolickými odkazmi;--dereference
- práca so súbormi, nie so samotnými symbolickými odkazmi. Používa sa v predvolenom nastavení;-R
- rekurzívne spracovanie adresára s celým jeho obsahom;-H
- sleduje symbolický odkaz a mení atribúty súboru/adresára. Používa sa v spojení s parametrom -R
;-L
- sledovať symbolický odkaz a pokračovať v rekurzívnom spracovaní. Používa sa v spojení s parametrom -R
;-P
- pri stretnutí so symbolickým odkazom spracovať iba tento odkaz. Používa sa spolu s parametrom -R
, je to predvolená hodnota;--reference=názov_súboru
- použije skupinu vzoriek;-c
- pri spracovaní sa zmení iba výstup;-v
- výstup informácií o každom spracovanom objekte.Najjednoduchší príklad použitia príkazu chgrp
. Nasledujúci mení celý objekt www-data
pre súbor
v aktuálnom priečinku:
$ sudo chgrp www-data file.txt
A tento zmení skupinu na www-data
pre priečinok prie
činka:
$ sudo chgrp www-data folder
Príkaz pracuje veľmi predvídateľným spôsobom, mení ich skupinu. Objekty v priečinku zostávajú nezmenené. Ak sa spracúvajú symbolické odkazy, ich atribúty zostanú nezmenené, ale objekt dostane novú skupinu. Toto správanie je podobné spracovaniu parametra --dereference
.
Napríklad tieto príkazy aplikované na symbolické odkazy budú fungovať tak, ako je znázornené na obrázku:
$ sudo chgrp www-data sym_file.txt
Pozrime sa, ako by fungoval parameter -h
meniaci atribúty symbolického odkazu:
$ sudo chgrp -h www-data sym_file
Skupina bola nastavená nielen na adresár, ale aj na všetky súbory v ňom. Všimnite si, že sa zmenilo správanie, teraz sa pri spracovaní symbolického odkazu nastavujú atribúty pre samotný odkaz, nie pre objekt.
Aby ste videli rozdiel medzi parametrami -H
a -L
, pozrime sa na niekoľko ďalších príkladov. Pripomeňme si, že sa musia používať spolu s parametrom -R
:
$ sudo chgrp -RH www-data folder
Použitím parametra -H
sa správanie pri spracovaní symbolických odkazov zmenilo, teraz sa s nimi pracuje, ako keby sa funkcie vykonávali samostatne. Atribúty odkazov sa nemenia, menia sa atribúty samotných objektov a rekurzívne spracovanie sa zastaví pri prepnutí do adresára.
$ sudo chgrp -RL www-data folder
Vykonáva jednu funkciu - mení skupinu súborov a adresárov.
Pri spracovaní symbolických odkazov by ste mali byť mimoriadne opatrní, aby ste nepoškodili systém.