Linuxia käyttäessään käyttäjät harvoin ajattelevat, kuka tiedoston omistaa. Kun kyseessä on palvelimen käyttö, tilanne kuitenkin muuttuu. Turvallisuuden lisäämiseksi palvelin saa oman käyttäjän. Ei ole harvinaista, että palvelimet käyttävät samaa ryhmää, kuten www-data
. Katsotaan seuraavaksi, miten tämä toiminto toimii tiedostojen ja hakemistojen kanssa. Kiinnitämme erityistä huomiota symbolisiin linkkeihin, sillä ne voivat aiheuttaa ongelmia käytettäessä turvattomia asetuksia.
Tiedoston käyttöoikeusstandardi tuli Linuxiin Unixista. Jokaisella objektilla on siis käyttäjä
, ryhmä
tämän lisäksi kuvaamuiden
käyttäjien oikeuksia(other)
. Oikeudet koostuvat kolmesta kohdasta: read, write, execute. Oikeuksien muuttamiseen käytetään umask-komentoa
, mutta chown-komennoilla
vaihdetaan omistaja ja ryhmä suoraan. Komennolla ls
voidaan tarkastella nykyisiä käyttöoikeuksia.
Yleisnäkymä chgrp-komennosta
:
$ chgrp [options] new_group file_name
Luettelo chgrp-komennon
yleisistä vaihtoehdoista:
-h
- työskentelee suoraan itse symbolisten linkkien kanssa;--dereference
- työskentely tiedostojen kanssa, ei itse symbolisten linkkien kanssa. Käytetään oletusarvoisesti;-R
- rekursiivinen hakemiston ja sen koko sisällön käsittely;-H
- seuraa symbolista linkkiä ja muuttaa tiedoston/hakemiston attribuutteja. Käytetään yhdessä -R-parametrin
kanssa;-L
- seuraa symbolista linkkiä ja jatkaa rekursiivista käsittelyä. Käytetään yhdessä -R-parametrin
kanssa;-P
- Kun kohtaat symbolisen linkin, käsittele vain sitä. Käytetään yhdessä -R-parametrin
kanssa, on oletusarvo;--reference=file_name
- käyttää esimerkkiryhmää;-c
- tulostus muuttuu vain käsittelyn aikana;-v
- tulostaa tietoja jokaisesta käsitellystä kohteesta.Yksinkertaisin esimerkki chgrp-komennon
käytöstä. Seuraavassa muutetaan koko www-data-objekti
nykyisen kansion tiedoston
osalta:
$ sudo chgrp www-data file.txt
Ja tämä vaihtaa ryhmän www-data
kansioon kansiossa
:
$ sudo chgrp www-data folder
Komento toimii hyvin ennustettavalla tavalla, muuttaen niiden ryhmän. Kansion objektit pysyvät muuttumattomina. Jos symbolisia linkkejä käsitellään, niiden attribuutit pysyvät ennallaan, mutta objekti saa uuden ryhmän. Tämä käyttäytyminen on samanlaista kuin --dereference-parametrin
käsittely.
Esimerkiksi symbolisiin linkkeihin sovellettuna nämä komennot toimivat kuvakaappauksessa esitetyllä tavalla:
$ sudo chgrp www-data sym_file.txt
Katsotaanpa, miten symbolisen linkin attribuutteja muuttava -h-parametri
toimisi:
$ sudo chgrp -h www-data sym_file
Ryhmä on asetettu hakemiston lisäksi myös kaikille sen sisällä oleville tiedostoille. Huomaa, että käyttäytyminen on muuttunut, nyt symbolista linkkiä käsiteltäessä attribuutit asetetaan itse linkille, ei objektille.
Jotta -H-
ja -L-parametrien
ero näkyisi, katsotaanpa vielä pari esimerkkiä. Muista, että niitä on käytettävä yhdessä -R:n
kanssa:
$ sudo chgrp -RH www-data folder
Käyttämällä -H-parametria
symbolisia linkkejä käsiteltäessä käyttäytyminen on muuttunut, niitä käsitellään nyt ikään kuin funktiot suoritettaisiin erikseen. Viittausten attribuutit eivät muutu, mutta itse objektien attribuutit muuttuvat, ja rekursiivinen käsittely pysähtyy, kun siirrytään hakemistoon.
$ sudo chgrp -RL www-data folder
Se suorittaa yhden toiminnon - se muuttaa tiedostojen ja hakemistojen ryhmää.
Kun käsittelet symbolisia linkkejä, sinun on oltava erittäin varovainen, ettet vahingoita järjestelmää.