Ero sivun ”Tiedostojärjestelmän pääsylistat (ACL)” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Tiedostojärjestelmän pääsylistat (ACL) (muokkaa)
Versio 14. syyskuuta 2011 kello 22.40
, 14. syyskuuta 2011pääsyoikeuslista → pääsylista.
Jem (keskustelu | muokkaukset) (ACL) |
Jem (keskustelu | muokkaukset) p (pääsyoikeuslista → pääsylista.) |
||
Rivi 40: | Rivi 40: | ||
# 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 | # 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ä | # 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ää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. | 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 | ||
sillä voi kuitenkin olla | sillä voi kuitenkin olla pääsylista, jonka mukaan <tt>staff</tt>-ryhmällä on kirjoitusoikeus tiedostoon. Tämä ei ole yhteensopivaa POSIX.1-standardin mukaan. POSIX.1 ei salli, että tiedostoihin on maagisesti oikeuksia joillekin käyttäjille, mekanismilla jota se ei tunne. Tämän ongelman ratkaisemiseksi pääsylistoihin kuuluu myös <tt>mask</tt>-kenttä, joka viime kädessä ratkaisee, onko tiedostoon pääsyä vai ei. | ||
Algoritmista voidaan huomata, että se toimii samalla tavalla kuin Unixin perinteinen suojausmalli, jos tiedostoon ei liity | 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== | ||
Pääsylistoja voidaan käyttää esimerkiksi siten, että tietyssä hakemistossa olevilla tiedostoilla on kahdella eri ryhmällä pääsyoikeus, mutta ulkopuolisilla ei. Esimerkiksi ryhmällä <tt>kehitys</tt> voi olla luku- ja kirjoitusoikeus kaikkiin tiedostoihin, ja ryhmällä <tt>testaus</tt> lukuoikeus. Tämä järjestely on helppo saada aikaan muuttamalla tiedostojen | Pääsylistoja voidaan käyttää esimerkiksi siten, että tietyssä hakemistossa olevilla tiedostoilla on kahdella eri ryhmällä pääsyoikeus, mutta ulkopuolisilla ei. Esimerkiksi ryhmällä <tt>kehitys</tt> voi olla luku- ja kirjoitusoikeus kaikkiin tiedostoihin, ja ryhmällä <tt>testaus</tt> lukuoikeus. Tämä järjestely on helppo saada aikaan muuttamalla tiedostojen pääsylistoja. Mutta entä kun hakemistoon luodaan uusi tiedosto? Olisi kovin työlästä ja virhealtista muistaa aina käsin muokata pääsylistoja kun hakemistoon luodaan uusi tiedosto. | ||
Tätä tarkoitusta varten hakemistoihin voi liittää | Tätä tarkoitusta varten hakemistoihin voi liittää oletuspääsylistan. Oletuspääsylista ei vaikuta hakemiston pääsyoikeuksiin (sitä varten on olemassa hakemiston oma, varsinainen pääsylista), vaan toimii mallina pääsylistalle, jonka tiedosto saa kun se luodaan hakemistossa. | ||
==Pääsylistojen muokkaus== | ==Pääsylistojen muokkaus== | ||
Rivi 72: | Rivi 72: | ||
==Ongelmia== | ==Ongelmia== | ||
* Monet varmuuskopiointiin käytetyt ohjelmat, kuten <tt>tar</tt>, eivät ymmärrä | * Monet varmuuskopiointiin käytetyt ohjelmat, kuten <tt>tar</tt>, eivät ymmärrä pääsylistoja. Tämä johtaa siihen, että tiedostot menettävät pääsylistansa, jos ne joudutaan palauttamaan <tt>tar</tt>-arkistosta. | ||
* Jotkut editorit toimivat siten, että tallennuksen eivät kirjoita tiedostoa uudestaan, vaan kirjoittavat muokatun tekstin uuteen tiedostoon, jonka nimeävät vanhan tiedoston mukaan. Koska tiedosto kuitenkin on järjestelmän kannalta uusi, jos editori ei ota asiaa huomioon, tiedostossa saattaa olla väärä | * Jotkut editorit toimivat siten, että tallennuksen eivät kirjoita tiedostoa uudestaan, vaan kirjoittavat muokatun tekstin uuteen tiedostoon, jonka nimeävät vanhan tiedoston mukaan. Koska tiedosto kuitenkin on järjestelmän kannalta uusi, jos editori ei ota asiaa huomioon, tiedostossa saattaa olla väärä pääsylista. Uusi tiedosto saattaa saada hakemiston oletuspääsylista, tai ei mitään pääsylistaa. | ||
* Tiedosto perii | * Tiedosto perii oletuspääsylistan vain hakemistosta, jossa se luodaan. Jos tiedosto luodaan toisessa hakemistossa, jossa ei ole oletuspääsylistaa, tai tiedostojärjestelmä ei edes tue pääsylistoja, tiedostoon ei tule mitään pääsylistaa. Jos tällaisen tiedoston siirtää <tt>mv</tt>-käskyllä hakemistoon, jossa on oletuspääsylista, sitä ei sovelleta tiedostoon, sillä <tt>mv</tt>-käsky ei luo tiedostoa, ainoastaan siirtää sen. |