Ero sivun ”Tiedoston oikeudet” versioiden välillä

Siirry navigaatioon Siirry hakuun
1 543 merkkiä lisätty ,  25. lokakuuta 2008
reilusti selkeytystä
p (→‎Katso myös: yhteiskäyttö)
(reilusti selkeytystä)
Rivi 1: Rivi 1:
Linuxissa jokaisella tiedostolla, hakemistolla, lohkolaitteella yms. on tietyt oikeudet, jotka kertovat ketkä tiedostoa saavat lukea, kirjoittaa ja suorittaa.
Linuxissa jokaisella [[tiedosto]]lla, [[hakemisto]]lla, [[laitetiedosto]]lla ym on tietyt oikeudet, jotka kertovat ketkä tiedostoa saavat lukea, kirjoittaa ja suorittaa.


==Miksi?==
==Miksi?==
Joskus voi tuntua typerältä, että esimerkiksi voidakseen suorittaa ladatun ohjelman on ensin erikseen annettava sille suoritusoikeus. Tiedostojen erilliset oikeudet lisäävät kuitenkin [[tietoturva|tietoturvaa]], kun esimerkiksi [[käyttäjä|tavallinen käyttäjä]] ei pysty lukemaan toisen [[käyttäjä|käyttäjän]] tiedostoja tai ei pääse vahingossa suorittamaan [[Virustorjunta|virusta tai muuta haittaohjelmaa.]]
Joskus voi tuntua tyhmältä, että esimerkiksi voidakseen suorittaa ladatun ohjelman, on sille erikseen annettava suoritusoikeus. Tiedostojen erilliset oikeudet parantavat kuitenkin [[tietoturva|tietoturvaa]], kun esimerkiksi tavallinen [[käyttäjä]] ei pysty lukemaan toisen käyttäjän tiedostoja tai ei pääse vahingossa suorittamaan [[haittaohjelmat|virusta tai muuta haittaohjelmaa]].


==Oikeudet==
==Oikeustyypit==
Jokaisella tiedostolla on kolme erillistä oikeutta: kirjoitusoikeus, lukuoikeus ja suoritusoikeus. Voidaan esimerkiksi määrätä, että tiedostoa saa lukea kaikki käyttäjät mutta vain root kirjoittaa ja suorittaminen ei ole sallittua kenellekään. Tällaisia tiedostoja ovat esimerkiksi lähes kaikki /etc-hakemiston asetustiedostot.
Jokaisella tiedostolla on kolme erillistä oikeutta: kirjoitusoikeus, lukuoikeus ja suoritusoikeus. Voidaan esimerkiksi määrätä, että tiedostoa saavat lukea kaikki käyttäjät mutta vain [[root]] kirjoittaa ja suorittaminen ohjelmatiedostona ei ole sallittua kenellekään. Tällaisia tiedostoja ovat esimerkiksi lähes kaikki [[linuxin hakemistorakenne|/etc-hakemiston]] [[asetustiedosto]]t.


Tiedoston oikeudet voidaan merkitä joko numerosarjalla (esimerkiksi 660) tai kirjainyhdistelmällä (esimerkiksi -rw-r-----). Pureudutaan ensin tuohon numeroyhdistelmään.
Suoritus- ja kirjoitusoikeuksien merkitys on hakemistojen kohdalla erilainen kuin tavallisilla tiedoistoilla. Suoritusoikeus tarkoittaa hakemistolle asetettuna oikeutta päästä käsiksi tiedostoon hakemiston kautta. Kirjoitusoikeus taas tarkoittaa oikeutta siirtää tai poistaa hakemiston sisältämä tiedosto, riippumatta itse tiedoston oikeuksista.


===Erikoisoikeudet===
Tiedostoille voidaan lisäksi asettaa niin sanotut '''setuid'''-, '''setgid'''- ja '''sticky bit''' -oikeudet.
Suoritettavan ohjelman osalta setuid- ja setgid-oikeudet tarkoittavat, että ohjelma suoritetaan omistajan tai ryhmän oikeuksilla riippumatta siitä, kuka ohjelman ajaa (kunhan hänellä on siihen suoritusoikeus). [[Kansion yhteiskäyttö ryhmässä|Hakemiston osalta]] setgid tarkoittaa, että sinne luotavat tiedostot saavat oletuksena saman ryhmän kuin hakemistokin.
Sticky bit (suomeksi tahmabitti) hakemistossa estää muita kuin omistajaa, [[pääkäyttäjä]]ä ja kirjoitusoikeuden omaavaa hävittämästä tiedostoa, vaikka hänellä olisi hakemistoon kirjoitusoikeus (tätä käytetään esimerkiksi /tmp-hakemistossa). Tavallisen tiedoston osalta sillä ei ole vaikutusta.
==Oikeuksien esittäminen==
Tiedoston oikeudet voidaan merkitä joko numerosarjalla (esimerkiksi <tt>660</tt>) tai kirjainyhdistelmällä (esimerkiksi <tt>-rw-r-----</tt>).
===Numeromuoto===
Numeroyhdistelmässä ensimmäinen numero tarkoittaa tiedoston omistajan oikeuksia, toinen tiedoston ryhmän oikeuksia ja kolmas muiden oikeuksia. Jokaisella tiedostolla on omistaja (joka on oletuksena tiedoston luoja) ja se kuuluu johonkin käyttäjäryhmään. Mahdolliset arvot jokaiselle numerolle ovat:
Numeroyhdistelmässä ensimmäinen numero tarkoittaa tiedoston omistajan oikeuksia, toinen tiedoston ryhmän oikeuksia ja kolmas muiden oikeuksia. Jokaisella tiedostolla on omistaja (joka on oletuksena tiedoston luoja) ja se kuuluu johonkin käyttäjäryhmään. Mahdolliset arvot jokaiselle numerolle ovat:
*0 = ei oikeuksia
*0 = ei oikeuksia
Rivi 18: Rivi 29:
*6 = luku ja kirjoitus (2+4)
*6 = luku ja kirjoitus (2+4)
*7 = luku, kirjoitus ja suoritus (1+2+4)
*7 = luku, kirjoitus ja suoritus (1+2+4)
Jolloin esimerkiksi 000 piilottaisi tiedoston sisällön kaikilta eikä antaisi kenenkään muokata sitä (huom! omistaja ja root voisivat kuitenkin muuttaa oikeuksia!) ja 777 antaisi kaikille kaikki mahdolliset oikeudet (huono tietoturvan kannalta).


Kirjainyhdistelmä taas on ehkäpä hieman monimutkaisempi. Tarkastellaan esimerkkinä tiedostoa, jonka oikeudet ovat -rwxr-xr-x. Ensimmäinen merkki - tarkoittaa tiedostoa (jos sen tilalla olisi d, kyseessä olisi hakemisto). Ensimmäisenä oleva l-kirjain merkitsisi [[Symbolinen linkki|symbolista linkkiä]]. Muitakin mahdollisia merkkejä ovat esimerkiksi merkkilaite (c), lohkolaite (b) ja putki (p).
Jolloin esimerkiksi 000 piilottaisi tiedoston sisällön kaikilta eikä antaisi kenenkään muokata sitä (HUOM! omistaja ja [[pääkäyttäjä]] voisivat kuitenkin muuttaa oikeuksia) ja 777 antaisi kaikille kaikki mahdolliset oikeudet.
Seuraavat kolme merkkiä ovat tiedoston omistajan oikeudet. Mahdollisia merkkejä ovat r (lukuoikeus), w (kirjoitusoikeus) ja x (suoritusoikeus). - tarkoittaa että oikeuksia ei ole lainkaan. Esimerkiksi omistajalla olisi luku- ja kirjoitusoikeus merkkijonolla rw- ja kaikki oikeudet (eli myös suoritusoikeus) merkkijonolla rwx (kuten esimerkissämme).


Seuraavat kolme merkkiä taas ovat vastaavalla tavalla ryhmän oikeudet, esimerkissämme r-x eli luku- ja suoritusoikeudet mutta ei kirjoitusoikeuksia. Viimeiset kolme merkkiä ovat muiden oikeudet.
===Kirjainmuoto===
Kirjainmuoto on kenties hieman monimutkaisempi kuin numeromuoto. Tarkastellaan esimerkkinä tiedostoa, jonka oikeudet ovat <tt>-rwxr-xr-x</tt>.
 
Ensimmäinen merkki '''-''' tarkoittaa tavallista tiedostoa (jos sen tilalla olisi '''d''', olisi kyseessä hakemisto). Ensimmäisenä oleva '''l'''-kirjain merkitsisi [[Symbolinen linkki|symbolista linkkiä]]. Muitakin mahdollisia merkkejä ovat esimerkiksi merkki[[laitetiedostot|laite]] ('''c'''), lohkolaite ('''b'''), [[nimetty putki]] ('''p''') ja [[wikipedia:Unix_domain_socket|socket]] ('''s''').
 
Seuraavat kolme merkkiä ovat tiedoston omistajan oikeudet. Mahdollisia merkkejä ovat '''r''' (lukuoikeus), '''w''' (kirjoitusoikeus) ja '''x''' (suoritusoikeus). '''-''' tarkoittaa, että oikeuksia ei ole lainkaan. Esimerkiksi omistajalla olisi luku- ja kirjoitusoikeus merkkijonolla <tt>rw-</tt> ja kaikki oikeudet (eli myös suoritusoikeus) merkkijonolla <tt>rwx</tt> (kuten esimerkissä yllä).
 
Seuraavat kolme merkkiä taas ovat vastaavalla tavalla ryhmän oikeudet, esimerkissä <tt>r-x</tt> eli luku- ja suoritusoikeudet mutta ei kirjoitusoikeuksia. Viimeiset kolme merkkiä ovat muiden oikeudet.
 
Jos tiedoston setuid-bitti on päällä, näkyy omistajan x-kirjaimen kohdalla '''S'''-kirjain. Jos setgid-bitti on päällä, näkyy S-kirjain ryhmän x-kirjaimen paikalla. Mikäli näissä kentissä on alkuaan x-kirjain (ts suoritusoikeus on päällä), näkyy '''s'''-kirjain pienenä. Jos tiedostolle on asetettu sticky bit, näkyy listan lopussa iso '''T'''-kirjain.
 
Jos sekä setuid-, setgid- että sticky-bitit olisivat päällä ja vain tiedoston omistajalla olisi luku-, kirjoitus- ja suoritusoikeudet, näyttäisi oikeuslista siis seuraavalta: <tt>-rws--S--T</tt>.


==Oikeuksien asettaminen==
==Oikeuksien asettaminen==
Tiedoston tai hakemiston oikeudet asetetaan käyttäen <tt>chmod</tt>-ohjelmaa. Tiedoston (tai hakemiston tai vastaavan) omistaja - ja tietysti myös root - voivat muuttaa oikeuksia yksinkertaisesti komennolla
Tiedoston tai hakemiston oikeudet asetetaan [[komentorivi]]llä käyttäen '''chmod'''-ohjelmaa. Tiedoston omistaja ja pääkäyttäjä voivat muuttaa sen oikeuksia esimerkiksi komennolla
  chmod 760 tiedosto
  chmod 760 tiedosto
Joka antaisi siis tiedoston omistajalle kaikki oikeudet, ryhmälle luku- ja kirjoitusoikeuden ja piilottaisi tiedoston sisällön muilta. Jos komennon kanssa käytetään valitsinta -R ja tiedoston paikalla on jokin hakemisto, muutetaan myös jokaisen alihakemiston ja alihakemiston tiedoston oikeudet.
Tämä antaisi tiedoston omistajalle kaikki oikeudet, ryhmälle luku- ja kirjoitusoikeuden ja piilottaisi tiedoston sisällön muilta. Jos komennon kanssa käytetään [[valitsin]]ta <tt>-R</tt> ja tiedosto on hakemisto, muutetaan myös jokaisen alihakemiston ja niiden alihakemistojen tiedostojen oikeudet.


Oikeudet voidaan asettaa myös käyttäen merkkijonoja. Voidaan komentaa esimerkiksi
Oikeudet voidaan asettaa myös käyttäen kirjainmuotoa. Voidaan esimerkiksi antaa komento
  chmod o+r tiedosto
  chmod o+r tiedosto
joka antaisi muille lukuoikeudet. Syntaksi on seuraavanlainen: <tt>chmod <kenelle> <+/-/=> <oikeus> tiedosto</tt>. Oikeudet voidaan antaa joko omistajalle u (user), ryhmälle g (group), muille o (other) tai kaikille a (all). Kohteeseenkin voi yhdistää useampia kirjaimia, esim go=rw. Ryhmämerkintä "a" tarkoittaa siis samaa kuin "ugo". Mahdollisia oikeuksia ovat edellä esitellyt r, w ja x, sekä X, joka lisää suoritusoikeuden, jos sellainen ennestään on jollakulla tai kyseessä on hakemisto, ja u, g tai o, joka asettaa oikeudet käyttäjän, ryhmän tai muitten mukaan.
mikä antaisi muille lukuoikeudet. Syntaksi on seuraavanlainen:  
chmod <span style="color:#f00">kenelle</span>+/-/=<span style="color:#00f">oikeus</span> tiedosto
Oikeudet voidaan antaa joko omistajalle '''u''' (user), ryhmälle '''g''' (group), muille '''o''' (other) tai kaikille '''a''' (all). Myös kohteeseen voi yhdistää useampia kirjaimia, esimerkiksi <tt>go=rw</tt>.  


+ tarkoittaa että tietty oikeus lisätään ja - ottaa tietyn oikeuden pois. = merkkiä käytettäessä tietty oikeusmerkkijono asetetaan, eli esimerkiksi
Ryhmämerkintä "a" tarkoittaa samaa kuin "ugo". Mahdollisia oikeuksia ovat '''r''', '''w''' ja '''x''' sekä '''X''', joka lisää suoritusoikeuden, jos sellainen ennestään on jollakulla tai kyseessä on hakemisto, ja '''u''', '''g''' tai '''o''', jotka asettavat oikeudet käyttäjän, ryhmän tai muiden mukaan.
 
'''+''' tarkoittaa, että tietty oikeus lisätään ja '''-''' ottaa tietyn oikeuden pois. '''=''' merkkiä käytettäessä tietty oikeusmerkkijono asetetaan, eli esimerkiksi
  chmod g=rw tiedosto
  chmod g=rw tiedosto
asettaisi ryhmälle luku- ja kirjoitusoikeuden riippumatta aiemmista oikeuksista (eli suoritusoikeutta ei enää ole jos sellainen aiemmin oli).
asettaisi ryhmälle luku- ja kirjoitusoikeuden riippumatta aiemmista oikeuksista (eli suoritusoikeutta ei enää ole jos sellainen aiemmin oli).


Hakemiston kohdalla suoritusoikeus tarkoittaa oikeutta päästä käsiksi tiedostoon hakemiston kautta. Huomaa myös, että kirjoitusoikeus hakemistoon tarkoittaa oikeutta siirtää tai poistaa tiedosto, riippumatta itse tiedoston oikeuksista.
Erikoisoikeudet (setuid, setgid ja sticky bit) voidaan asettaa joko numeerisesti (4000, 2000 ja 1000 ylläselitetyn mukaisesti) tai kirjaimin (u+s, g+s ja +t).


Yllä lueteltujen oikeuksien lisäksi tiedostolle voi asettaa suid-, sgid- tai "sticky"-bitit. Suoritettavan ohjelman osalta ensimmäiset tarkoittavat, että ohjelma suoritetaan omistajan tai ryhmän oikeuksilla riippumatta siitä kuka ohjelman ajaa (kunhan hänellä on siihen suoritusoikeus), [[Kansion yhteiskäyttö ryhmässä|hakemiston osalta sgid]] tarkoittaa, että sinne luotavat tiedostot saavat oletuksena saman ryhmän kuin hakemistokin. Sticky bit hakemistossa estää muita kuin omistajaa, roottia ja kirjoitusoikeuden omaavaa hävittämästä tiedostoa, vaikka hänellä olisi hakemistoon kirjoitusoikeus (tätä käytetään esimerkiksi /tmp-hakemistossa), tiedoston osalta tulkinta vaihtelee. Nämä bitit asetetaan joko numeerisesti (4000, 2000 ja 1000 ylläselitetyn mukaisesti) tai symbolisesti (u+s, g+s ja +t).
===Graafiset vaihtoehdot===
Tiedostojen oikeuksia voi muuttaa myös [[GUI|graafisesti]] käyttäen jotakin tiedostonhallintaohjelmaa, kuten [[Konqueror]]ia, [[Nautilus]]ta tai [[Thunar]]ia.


Tiedostojen oikeuksia voi toki muuttaa myös graafisesti käyttäen jotain tiedostonhallintaohjelmaa, esimerkiksi [[Konqueror]]ia.
Tavallisesti tämä tapahtuu klikkaamalla tiedoston kuvaketta [[hiiri|hiiren]] kakkosnäppäimellä ja valitsemalla ''Ominaisuudet''.


== Katso myös ==
== Katso myös ==
*[[Kansion yhteiskäyttö ryhmässä]]
*[[Kansion yhteiskäyttö ryhmässä]]
*[[Chown]] (aseta tiedoston omistaja)
*[[Chown]] - asettaa tiedoston omistajan
*[[Chgrp]] (aseta tiedoston ryhmää)
*[[Chgrp]] - asettaa tiedoston [[ryhmä]]n
*[[Chattr]] (aseta lisärajoituksia)
*[[Chattr]] - asettaa tiedostoattribuutteja
 
==Aiheesta muualla==
*[http://www.flug.fi/ohjeita/oikeudet.html Opas tiedostojen oikeuksista FLUGin sivuilla]


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:Tiedostojärjestelmät]]
[[Luokka:Tiedostojärjestelmät]]
4 316

muokkausta

Navigointivalikko