FLOSS Manuals

 English |  Español |  Français |  Italiano |  Português |  Русский |  Shqip

Komentorivin perusteet

Käyttöoikeudet

Käyttöoikeudet

Tietokonejärjestelmäsi varastoi paljon tietoa tiedostoista. Tämä tieto pysyy normaalisti piilossa, kun luot ja käytät tiedostoja. Yksi ominaisuuksien joukko, johon törmäät, on käyttöoikeudet. Kuka voi muokata tiedostojasi? Toivottavasti ei jokainen järjestelmän käyttäjä (sillä monia järjestelmiä käyttävät nykyisin useammat käyttäjät). Tämä käyttöoppaan osa keskustelee omistajuudesta ja käyttöoikeuksista.

Ensinnäkin, katsotaanpa, mitä järjestelmä itse voi kertoa tiedostoistaan. Suoritamme tutun "ls"-komennon valitsimella "-l", joka antaa pitkän listan:

$ ls -l
total 72
drwxr-xr-x   2 root root  4096 Oct  5 09:31 bin
drwxr-xr-x   3 root root  4096 Oct  9 21:47 boot
drwxr-xr-x   1 root root     0 Jan  1  1970 dev
...

Ensimmäinen rivi:

total 72

näyttää kaikkien tiedostojen yhtenäiskoon kilotavuissa (kB). Loppu tarjoaa tietoa tiedostoista ja hakemistoista itsessään. Tämä tieto on ryhmitetty seitsemään palkkiin, joita voidaan luonnehtia seuraavasti:

Käyttöoikeudet Linkit Omistaja Ryhmä Koko Muutospäivämäärä Tiedostonimi

Mitä voin tehdä? Mitä muut voivat tehdä?

Jokaisella tiedostolla ja hakemistolla järjestelmässä on omistaja, se kuuluu ryhmään ja siihen liittyy joukko käyttöoikeuksia. Yksinkertaisimmalla tasolla nämä käyttöluvat määrittelevät kolme pääsytasoa, yhden tiedoston omistajalle, yhden ryhmälle johon tiedosto kuuluu ja yhden muulle maailmalle. (Itse asiassa maailma tarkoittaa vain niitä ihmisiä, joilla on lupa kirjautua järjestelmään.)

Katsotaanpa taas aiemmin näytettyä ulostuloa. Kolmannessa ja neljännessä palkissa näkyy omistaja (tässä tapauksessa pääkäyttäjä) ja ryhmä (myös pääkäyttäjä). Ensimmäisessä palkissa näkyy käyttöoikeudet hyvin tiiviissä muodossa, kuten tässä:

 

drwxr-xr-x

Ensimmäinen merkki tarkoittaa tiedoston tyyppiä, seuraavat kolme merkkiä näyttävät omistajan oikeudet, sitä seuraavat kolme ovat ryhmän oikeudet ja viimeiset kolme ovat muun maailman oikeudet.

Seuraava taulukko näyttää ensimmäisen merkin merkityksen. Edellisessä esimerkissä oli kirjain "d", joka tarkoittaa hakemistoa. Jotkin näistä merkeistä ovat melko harvinaisia. Yleensä sinun tarvitsee ajatella vain tavallista tiedostoa ja hakemistoa.

 

Merkki Kuvaus
- tavallinen tiedosto
d hakemisto
l symbolinen linkki
b erityinen blokkitiedosto
c erityinen kirjaintiedosto
p FIFO (nimetty piippu)
s suoritinkanta
? ls ei ole tunnistanut tätä


Käyttöluvat on jaettu kolmeen tyyppiin:

  • Lue (r): lupa lukea tiedostoa
  • Kirjoita (w): lupa kirjoittaa tiedostoon
  • Suorita (x): lupa suorittaa tiedostoa

Yhdysmerkki (-) merkitsee mitä tahansa käyttölupaa, jota ei ole asetettu.

Yksinkertaisempi tapa nähdä käyttölupien jakautuminen näytetään alla:

:tyyppi : omistaja : ryhmä : muu maailma:
:d      : rwx      : r-x   : r-x

Jos tahdot nähdä tiedoston sisällön, tarvitset lukuoikeuden.  Jos tahdot muukata sen sisältöä, tarvitset kirjoitusoikeuden. Jos tiedosto on ohjelma ja tahdot suorittaa sen, tarvitset suoritusoikeuden.

Jos tahdot nähdä hakemiston sisällön, tarvitset sekä luku- että suoritusoikeudet, pelkät lukuoikeudet eivät ole tarpeeksi.  Jos tahdot lisätä tai poistaa tiedostoja tuosta hakemistosta, tarvitset kirjoitusoikeuksia.

Palataanpa takaisin esimerkkiin ja pohditaan seuraavaa riviä:

drwxr-xr-x   2 root root  4096 Oct  5 09:31 bin

Kuten nyt näet, se on hakemisto. Kuinka voit saada selville, mitä sinä voit itse asiassa tehdä sillä? Sinun täytyy katsoa tiedostolle asetettua käyttäjää ja ryhmää. Mutta ensin: kuka sinä olet? 

$ whoami
joe

Juuri tämän "whoami" kertoo sinulle: kuka olet ja käyttäjätunnuksesi nimen. Kuten näet, et ole juurikäyttäjä. Juurikäyttäjä voi nähdä hakemiston sisällön ja lisätä siihen tiedostoja, mutta et ole juuri. Mikä ryhmäsi sitten on? 

$ id -G -n
joe dialout cdrom floppy audio video plugdev

Tämä on lista ryhmistä, joihin kuulut. Jos joku näistä ryhmistä olisi ollut "root", voisit nähdä hakemiston "/bin" sisällön, mutta et voisi lisätä siihen tiedostoja. Mutta et ole osa "root"-ryhmää. Ainoa jäljelläoleva vaihtoehto on "muu maailma", ja sinut on sisällytetty siihen, joten voit ainoastaan nähdä hakemiston sisällön. 

Katsotaanpa toista tiedostoa:

$ ls -l /etc/issue
-rw-r--r-- 1 root root 36 2009-02-26 15:06 /etc/issue

Kuten voit nähdä, se on tavallinen tiedosto, jota "root" voi lukea ja kirjoittaa ja jota käyttäjät "root"-ryhmässä, missäpä he ovatkin, voivat vain lukea. Ja sitä sinä, "joe", voit myös vain lukea. 

Entäpä omat juttusi? Todennäköisesti sinulla on "Työpöytä" tai "Desktop" -hakemisto kotihakemistossasi. Tarkastamme sen käyttöluvat komennolla "ls -l", ja liitämme lisävalitsimen "-d", jotta näemme vain hakemiston "Desktop" rivin, emmekä sen alla olevia tiedostoja ja hakemistoja. 

$ ls -l -d ~/Desktop
drwxr-xr-x 8 joe joe 4096 2009-03-12 09:27 /home/joe/Desktop

Se hakemisto kuuluu sinulle! Ja käyttölupien mukaan voit lukea sisältöä ja laittaa sinne tiedostoja. Muut ihmiset voivat vain katsoa sen sisältöä.

Käyttölupien asettaminen komennolla chmod

Jos tahdot muuttaa tiedoston käyttölupia sinun täytyy omistaa se - et voi vain mennä muuttelemaan muiden ihmisten juttuja. Jos omistat tiedoston (tai hakemiston), voit muuttaa sen käyttölupia komennolla "chmod". On kaksi tapaa määritellä uuden tiedoston käyttöluvat ja molemmissa on hyvät puolensa. Tarkastellaampa molempia.

Luo harjoitushakemisto ja kopioi sinne pari tiedostoa:

$ mkdir ~/harjoituscd ~/harjoitus
$ cp /etc/issue /etc/motd .
$ ls -l
 total 8
-rw-r--r-- 1 joe joe  36 2009-03-21 14:34 issue
-rw-r--r-- 1 joe joe 354 2009-03-21 14:34 motd

Sanotaanpa, että tehdot tehdä tiedostosta "issue" luettavan ja kirjoitettavan ryhmällesi ja itsellesi. Tiedostosta "motd" tahdot tehdä luettavan ja kirjoitettavan vain itsellesi. Tämä merkitsee, että viimeisen ulostulon täytyy näyttää suunnilleen tältä: 

$ ls -l
 total 8
-rw-rw---- 1 joe joe  36 2009-03-21 14:34 issue
-rw------- 1 joe joe 354 2009-03-21 14:34 motd

Voit tehdä näin tiedostolle "issue":

$ chmod u=rw,g=rw,o= issue

Tämä merkitsee:

  • "u=rw": aseta käyttäjän käyttöoikeuksiksi lue ja kirjoita
  • "g=rw": aseta ryhmän käyttöoikeuksiksi lue ja kirjoita
  • "o=": älä anna muille mitään lupia

Tiedostolle "motd" komento menee näin:

$ chmod u=rw,g=,o= motd

Melko suoraviivaista, vai mitä? Myös paljon kirjoittamista. Lyhempi versio menisi näin:

$ chmod ug=rw,o= issue
$ chmod u=rw,go= motd

Se on hieman lyhempi, mutta on olemassa vieläkin lyhempi versio:

$ chmod 0660 issue

Tätä tarvitsee hieman selittää. Numerot merkitsevät samoja käyttölupia kuin yllä. Jos tahdot ymmärtää sen toiminnan, ajattele seuraavaa kaaviota:

 octal_notation_fi

Ylin rivi näyttää päämäärämme: tiedoston, jonka omistaja voi lukea, kirjoittaa ja suorittaa, jota ryhmä voi vain lukea ja suorittaa, ja jota muu maailma ei voi käyttää mitenkään. Jokainen kirjain symbolisessa notaatiossa vastaa bittiä binäärisessä esityksessä. Jos kirjain on paikalla, numero on "1", ja jos sitä ei ole, numero on "0". Ensimmäinen "1" luvussa "111" on "4", toinen on "2" ja kolmas on "1". Kun lisäät nämä yhteen, saat numeron "7". Kun teet saman kaikille muille kolmikoille, saat luvun "0750".

Palataksemme edelliseen esimerkkiin, tiedostoon "issue," tahdomme lupien olevan "-rw-rw----", tämä antaa meille numerot "0", "4+2", "4+2" ja "0", josta tulee "0660". Voitko selvittää, mitä tämä on tiedostolle "motd"?

There has been error in communication with Booktype server. Not sure right now where is the problem.

You should refresh this page.