Muokataan sivua Tiedostojärjestelmän pääsylistat (ACL)
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 27: | Rivi 27: | ||
==Pääsylistojen toiminta== | ==Pääsylistojen toiminta== | ||
Tiedostojärjestelmä jakaa käyttäjät kolmeen eri luokkaan: ''tiedoston omistaja'', ''ryhmä'' ja ''muut''. Jokaiseen näistä luokista liittyy kolme eri pääsyoikeutta: lukuoikeus (<tt>r</tt>), kirjoitusoikeus (<tt>w</tt>) ja suoritusoikeus (<tt>x</tt>). Perinteisessä Unixin tiedostomallissa tiedostoon (tai hakemistoon) liittyy yksi omistaja ja yksi ryhmä | Tiedostojärjestelmä jakaa käyttäjät kolmeen eri luokkaan: ''tiedoston omistaja'', ''ryhmä'' ja ''muut''. Jokaiseen näistä luokista liittyy kolme eri pääsyoikeutta: lukuoikeus (<tt>r</tt>), kirjoitusoikeus (<tt>w</tt>) ja suoritusoikeus (<tt>x</tt>). Perinteisessä Unixin tiedostomallissa tiedostoon (tai hakemistoon) liittyy yksi omistaja ja yksi ryhmä. 'Muut käyttäjät'-joukon muodostavat kaikki ne käyttäjät, jotka eivät kuulu ryhmään eikä ole tiedoston omistaja. | ||
Pääsylistat laajentavat tätä mallia siten, että tiedostoon voidaan liittää useampia käyttäjiä ja ryhmiä, joilla jokaisella voi olla omat pääsyehdot tiedostoon. Esimerkiksi ryhmälle 'toimitus' voidaan määritellä '<tt>rw-</tt>'-oikeudet ja ryhmälle 'julkaisu' vaikkapa oikeudet '<tt>r--</tt>'. Tiedostolla on edelleen yksi omistaja ja ensisijainen ryhmä, jotka näkyvät '<tt>ls -l</tt>' -komennolla. | Pääsylistat laajentavat tätä mallia siten, että tiedostoon voidaan liittää useampia käyttäjiä ja ryhmiä, joilla jokaisella voi olla omat pääsyehdot tiedostoon. Esimerkiksi ryhmälle 'toimitus' voidaan määritellä '<tt>rw-</tt>'-oikeudet ja ryhmälle 'julkaisu' vaikkapa oikeudet '<tt>r--</tt>'. Tiedostolla on edelleen yksi omistaja ja ensisijainen ryhmä, jotka näkyvät '<tt>ls -l</tt>' -komennolla. | ||
Tiedoston omistajaksi ei voi liittää useampaa omistajaa, ainoastaan yksi käyttäjä kuuluu luokkaan ''tiedoston omistaja''. Tiedoston omistajaa voi toki vaihtaa chown-komennolla. Kuten aiemmin mainittiin, tiedostoon voi liittää yksittäisiä käyttäjiä, mutta näistä käyttäjistä ei siis tule tiedoston omistajia, vaan ne muodostavat yhden käyttäjän mini-ryhmiä. Toisin sanoen, tiedostoon liitetty käyttäjä kuuluu myös luokkaan ''ryhmä''. | Tiedoston omistajaksi ei voi liittää useampaa omistajaa, ainoastaan yksi käyttäjä kuuluu luokkaan ''tiedoston omistaja''. (Tiedoston omistajaa voi toki vaihtaa chown-komennolla.) Kuten aiemmin mainittiin, tiedostoon voi liittää yksittäisiä käyttäjiä, mutta näistä käyttäjistä ei siis tule tiedoston omistajia, vaan ne muodostavat yhden käyttäjän mini-ryhmiä. Toisin sanoen, tiedostoon liitetty käyttäjä kuuluu myös luokkaan ''ryhmä''. | ||
===Algoritmi=== | ===Algoritmi=== | ||
Rivi 38: | Rivi 38: | ||
# Jos uid = tiedoston omistajan id, pääsy päätellään ''tiedoston omistaja'' -luokan suojausbiteistä. | # Jos uid = tiedoston omistajan id, pääsy päätellään ''tiedoston omistaja'' -luokan suojausbiteistä. | ||
# Jos uid löytyy tiedostoon liitetyn pääsylistan yksittäisten käyttäjien joukosta, pääsy päätellään tämän listan alkion mukaan | # Jos uid löytyy tiedostoon liitetyn pääsylistan yksittäisten käyttäjien joukosta, pääsy päätellään tämän listan alkion mukaan. | ||
# Jos jokin prosessin gid = tiedoston ryhmäomistajan id, pääsy päätellään tämän listan alkion mukaan | # Jos jokin prosessin gid = tiedoston ryhmäomistajan id, pääsy päätellään tämän listan alkion mukaan. | ||
# Tarkastellaan niitä pääsylistan nimettyjen ryhmien alkioita, joissa on mikä tahansa prosessin gideistä. Jos | # Tarkastellaan niitä pääsylistan nimettyjen ryhmien alkioita, joissa on mikä tahansa prosessin gideistä. Jos mikään täsmäävistä listan alkioista ei sisällä haluttua pääsyoikeutta, pääsy evätään, muussa tapauksessa siirrytään kohtaan 5. | ||
# Pääsy päätellään pääsylistan <tt>mask</tt> -arvosta. | |||
# Pääsy päätellään ''muut''-luokan suojausbiteistä. | # Pääsy päätellään ''muut''-luokan suojausbiteistä. | ||
Mask-kenttä ansaitsee maininnan tässä yhteydessä. Linux noudattaa POSIX.1-standardia, joka sanoo, että tiedoston ryhmäsuojausbitit (siis ne jotka ovat näkyvillä <tt>ls -l</tt> komennon tulosteessa) määräävät mikä suojaus tiedostolla on kun siihen sovelletaan ''ryhmä''-luokan suojausmoodia. Pääsylistoilla on kuitenkin mahdollista antaa muille ryhmille kuin tiedoston omistajaryhmälle vapaampi suojaus kuin mitä ryhmäsuojauksella on. Esimerkiksi, jos tiedoston moodi on: | |||
-rw-r--r--+ 1 jem users 0 Sep 14 19:28 juttu.txt | -rw-r--r--+ 1 jem users 0 Sep 14 19:28 juttu.txt | ||
Rivi 58: | Rivi 53: | ||
chmod g-r juttu.txt | chmod g-r juttu.txt | ||
POSIX.1 sanoo, ettei ryhmän jäsenellä saa olla lukuoikeutta tuohon tiedostoon. Chmod-komento (tai oikeammin ytimen chmod-systeemikutsu, jota chown-ohjelma kutsuu) ratkaisee tämän poistamalla r-oikeuden mask-alkion arvosta. Jos chmod-käskyllä palautetaan lukuoikeus ''ryhmä''-luokalle, mask-alkioon palautetaan taas r-oikeus. <tt>Chmod</tt>-käsky ei vaikuta muiden pääsylistan alkioiden arvoihin, joten tiedosto on nyt samassa tilassa kuin ennen ensimmäistä <tt>chmod</tt>-käskyä. | POSIX.1 sanoo, ettei ryhmän jäsenellä saa olla lukuoikeutta tuohon tiedostoon. Chmod-komento (tai oikeammin ytimen chmod-systeemikutsu, jota chown-ohjelma kutsuu) ratkaisee tämän poistamalla r-oikeuden mask-alkion arvosta. Jos chmod-käskyllä palautetaan lukuoikeus ''ryhmä''-luokalle, mask-alkioon palautetaan taas r-oikeus. <tt>Chmod</tt>-käsky ei vaikuta muiden pääsylistan alkioiden arvoihin, joten tiedosto on nyt samassa tilassa kuin ennen ensimmäistä <tt>chmod</tt>-käskyä. | ||
Algoritmista voidaan huomata, että se toimii samalla tavalla kuin Unixin perinteinen suojausmalli, jos tiedostoon ei liity pääsylistaa. Tällöin algoritmin kohdat 2 ja 4 eivät vaikuta lopputulokseen, vaan tarkastelussa siirrytään seuraavaan kohtaan. | |||
==Oletuspääsylistat== | ==Oletuspääsylistat== |