Muokataan sivua Tiedostojärjestelmän pääsylistat (ACL)

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

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ä, jota sanotaan ryhmäomistajaksi. 'Muut käyttäjät'-joukon muodostavat kaikki ne käyttäjät, jotka eivät kuulu ryhmään eikä ole tiedoston omistaja.
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 jokin näistä alkioista sisältää halutun pääsyoikuden, pääsy sallitaan (*), muussa tapauksessa pääsy evätään. Jos mikään listan alkioista ei täsmää prosessin gidien kanssa, 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ääsylistan <tt>mask</tt> -arvosta.
# Pääsy päätellään ''muut''-luokan suojausbiteistä.
# Pääsy päätellään ''muut''-luokan suojausbiteistä.


(*) Tähdellä merkityissä kohdissa suoritetaan lisätarkistus pääsylistan mask-alkiota vastaan. Jos mask-kenttä ei sisällä haluttua oikeutta, pääsy evätään.
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:
 
Nämä säännöt saattavat vaikuttaa monimutkaisilta, varsinkin kohta 4. Ne ovat kuitenkin yhteensopivia Unixin perinteisen tiedostojen suojausmallin kanssa, jonka mukaan suojaus päätellään käyttäjään tarkimmin täsmäävän säännön mukaan. Tiedoston omistajaan sovelletaan vain ja ainoastaan ''tiedoston omistaja'' -luokan suojausbittejä. Jos käyttäjä ei ole tiedoston omistaja, mutta kuuluu tiedoston omistajaryhmään, sovelletaan vain ''ryhmä''-luokan suojausbittejä, ja vain muissa tapauksissa sovelletaan ''muut''-luokan suojausbittejä. Tämä tarkoittaa käytännössä sitä, että tiedoston omistaja voi halutessaan sulkea itseltään pääsyn tiedostoon, mutta sallia sen muille (esimerkiksi suojauksella <tt>----rwxrwx</tt>). Samalla tavalla tiedostoon pääsy voidaan estää tiedoston omistajaryhmään kuuluville, mutta sallia muille (esimerkiksi suojauksella <tt>-rwx---rwx</tt>).
 
Pääsylistan lisääminen tuo tiedostoon lisää ''ryhmä''-luokkaan kuuluvia käyttäjiä ja ryhmiä. (Muista, että listaan lisätty yksittäinen käyttäjä kuuluu ''ryhmä''-luokkaan; tiedostolla on vain yksi omistaja.) "Tarkimmin täsmäävän" -säännön takia algoritmin kohdassa 4 pääsy evätään heti, jos käyttäjä löytyy ''ryhmä''-luokasta, mutta hänellä ei ole tämän luokan suojausten mukaan pääsyä tiedostoon. Vain siinä tapauksessa, että käyttäjä ei löydy ''ryhmä''-luokasta, sovelletaan ''muut''-luokan suojausta.
 
Pääsylistan mask-alkio 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==
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetyt mallineet: