Ero sivun ”Tiedostojärjestelmän pääsylistat (ACL)” versioiden välillä

Siirry navigaatioon Siirry hakuun
p
pääsyoikeuslista → pääsylista.
(ACL)
 
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 pääsyoikeuslistan 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ääsyoikeuslistan 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.
# 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ääsyoikeuslistan <tt>mask</tt> -arvosta.
# 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ääsyoikeuslistoilla on kuitenkin mahdollista antaa muille ryhmille kuin tiedoston omistajaryhmälle vapaampi suojaus kuin mitä ryhmäsuojauksella on. Esimerkiksi, jos tiedoston moodi on:
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 pääsyoikeuslista, 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ääsyoikeuslistoihin kuuluu myös <tt>mask</tt>-kenttä, joka viime kädessä ratkaisee, onko tiedostoon pääsyä vai ei.
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 pääsyoikeuslistaa. Tällöin algoritmin kohdat 2 ja 4 eivät vaikuta lopputulokseen, vaan tarkastelussa siirrytään seuraavaan kohtaan.
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ääsyoikeuslistoja. Mutta entä kun hakemistoon luodaan uusi tiedosto? Olisi kovin työlästä ja virhealtista muistaa aina käsin muokata pääsyoikeuslistoja kun hakemistoon luodaan uusi tiedosto.
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ää oletuspääsyoikeuslistan. Oletuspääsyoikeuslista ei vaikuta hakemiston pääsyoikeuksiin (sitä varten on olemassa hakemiston oma, varsinainen pääsyoikeuslista), vaan toimii mallina pääsyoikeuslistalle, jonka tiedosto saa kun se luodaan hakemistossa.
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ä pääsyoikeuslistoja. Tämä johtaa siihen, että tiedostot menettävät pääsyoikeuslistansa, jos ne joudutaan palauttamaan <tt>tar</tt>-arkistosta.
* 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ä pääsyoikeuslista. Uusi tiedosto saattaa saada hakemiston oletuspääsyoikeuslista, tai ei mitään pääsyoikeuslistaa.
* 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 oletuspääsyoikeuslistan vain hakemistosta, jossa se luodaan. Jos tiedosto luodaan toisessa hakemistossa, jossa ei ole oletuspääsyoikeuslistaa, tai tiedostojärjestelmä ei edes tue pääsyoikeuslistoja, tiedostoon ei tule mitään pääsyoikeuslistaa. Jos tällaisen tiedoston siirtää <tt>mv</tt>-käskyllä hakemistoon, jossa on oletuspääsyoikeuslista, sitä ei sovelleta tiedostoon, sillä <tt>mv</tt>-käsky ei luo tiedostoa, ainoastaan siirtää sen.
* 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.
92

muokkausta

Navigointivalikko