Failiõigused UNIXis

Failide omanikud, grupid ja kasutajate õigused
Failiõiguste muutmine
Failiomaniku ja -grupi muutmine
Kataloogid on failid
Kasulikud materjalid

Failide omanikud, grupid ja kasutajate õigused

Iga UNIXi süsteemi kasutaja on identifitseeritav UIDiga, millele vastab tema kasutajanimi. Iga kasutaja kuulub ühte või enamasse gruppi. Igale grupile vastab GID ning sellele omakorda grupi nimi.

Faili atribuutide hulka kuuluv info selle moodustanud kasutaja ja tema grupi kohta on kirjas failisüsteemis numbriliselt. Neid arve nimetatakse vastavalt faili User Identification (UID) ning faili Group Identification (GID). Need arvud seatakse vastavusse konkreetse kasutajaga failide /etc/passwd ja /etc/group abil. Numbreid dubleeritakse sõnaliselt, kuna sõnaline vorm on ülevaatlikum. Kui soovite kuvada neid arve, andke koorikus korraldus 'ls -ln'.

Kui kasutaja loob uue faili, talletab operatsioonisüsteem tema UIDi ja GIDi koos muude faili atribuutide väärtustega. Oluline on märkida, et kasutaja saab talletatava grupi GID väärtuseks määrata ükskõik millise gruppidest, millesse ta kuulub.

Nii räägimegi failiomanikust ja failigrupist, viidates faili loonud kasutajale ja ühele gruppidest, kuhu ta kuulub.

Praktiliselt poleks sellest erilist kasu, kui failidel oleks pelgalt märge tema moodustaja kasutajanime ja grupinime kohta. Arvestades seda, et faile saab

oleks mõtekas anda kasutajale õigusi nende tegevuste teostamiseks sõltuvalt sellest, kas ta on:

Just nii ongi UNIXis asjad korraldatud. Kuigi räägitakse failiõigustest mõeldakse tegelikult selle all, milline on erinevate kasutajate voli kõnealuse faili suhtes.

Vaatleme kommenteeritult ühe kataloogi sisu ehk listingut:

bash~$ ls -la
1  2     3     4         5     6  
d rwx   r-x   r-x   3   mart users    1 024   12 Mar   1998 ./
d rwx   r-x   r-x   6   mart users    1 024   12 Mar   1998 ../
d rwx   rwx   r-x   2   mart users   23 000   12 Mar   1998 kata
- rw-   r--   r--   1   mart users   30 000   12 Mar   1998 karu
- rwx   r-x   --x   1   mart users   30 000   12 Mar   1998 programm

tulpade tähendused:

Selgitused failide 'karu' ja 'programm' kohta

Faili 'karu' (rw- r-- r--) sisu saab muuta ainult omanik; kõik saavad lugeda.

Faili 'programm' (rwx r-x --x) saavad tööle panna kõik, kuid kopeerida saavad vaid faili omanik ja failiga samasse gruppi kuuluvad kasutajad. Öeldu kehtib eeldusel, et programm pole skript. Skripti käivitamiseks on tarvis nii käivitamise kui lugemisõigust. Mitteskripti puhul vaid käivitamisõigust.

Selgitused kataloogide kohta

kataloog 'kata':

käesolev kataloog (./)

See, kas faili ennast kustutada saab, pole faili omadus. Faili sisu kustutada lubamine on faili omadustega reguleeritav. Tekstifaili saab teha käivitatavaks, kuid sel pole erilist mõtet. Skript (nt. shell, perl) tuleb teha nii loetavaks kui käivitatavaks, kuid programmi 'binary' piisab teha vaid käivitatavaks.

Kasutaja ei peaks andma teistele kasutajatele õigust talle eraldatud kettaruumi faile luua, kuigi tehniliselt on tal seda võimalik teha. Samas võib kasutaja soovida osa oma failidest teha teistele sama masina kasutajatele kättesaadavaks, nt. lugemiseks, käivitamiseks, sisu kustutamiseks. Faili õigusi on vaja sobivalt määrata kodulehekülgede väljariputamisel; vastasel korral ei näe külastajad Teie lehekülgi või vastupidi, mõned neist saavad neid ise 'täiendada'.

Failiõiguste muutmine

Kuna UNIX peab arvet failide omanike kohta, siis ei saa teised tavakasutajad muuta Teie failide failiõigusi; ega ka vastupidi - Teie ei saa muuta teiste kasutajate failide failiõigusi. Samuti ei saa tavakasutaja muuta teise kasutaja faili omanikku ja faili gruppi.

Failiõigusi muudetakse käsuga chmod (ingl. k. change mode) ja kokkuvõtlikult kirjeldab võimalusi tabel:

        u
        g  +  r
chmod      -  w   fail1 fail2 ...
        o  =  x
        a

kus u - user; g - group, o - others, a - all, r - read, w - write ja x -execute

Näited:

Soovime faili 'kevadelaul' teha kõigile vaid loetavaks

bash~$ chmod  a=r kevadelaul

Soovime lisada omanikule faili kirjutamise ja käivitamise õiguse

bash~$ chmod u+wx kevadelaul

Soovime jätta grupi liikmed lugemisõigusest ilma

bash~$ chmod g-r kevadelaul

tulemusena on faili 'kevadelaul' õigused sellised

rwx --- r--

Failiomaniku ja -grupi muutmine

Faili omanik saab failigruppi muuta, määrates selle üheks gruppidest, millesse ta ise kuulub. Võimalik on olukord, kus root kasutaja tegi tavakasutaja failiomanikuks, kuid failigrupiks on grupp, millesse kasutaja ei kuulu. Kasutaja saab ka sellisel juhul failigruppi muuta. Failigruppi muudetakse käsuga chgrp (change group)

bash~$ chgrp uue_grupi_nimi fail1 fail2 ...

Failiomanikku saab muuta vaid root kasutaja õigustes käsuga chown (ingl. k. change owner)

bash~$ chown uue_omaniku_nimi fail1 fail2 ...

Võimalik on muuta korraga nii failiomanikku kui -gruppi, eraldades need chown käsus punktiga

bash~$ chown uue_omaniku_nimi.uue_grupi_nimi fail1 fail2 ...

Teine võimalus failiõigusi muuta

Faili õiguste muutumiseks on tegelikult veel palju mugavam viis, kui kirjeldatud 'chmod a+rwx failinimi' meetod.

Nimelt on tooduga samaväärne käsk

bash~$ chmod 777 failinimi

kus 777 on failiõigusi kirjeldav kaheksandarv.

Selgitus:

õigused    omanik - owner       grupp - group      teised - others
chmod   read write  execute   read write execute  read write execute
0777     1    1       1        1    1      1       1    1      1
0755     1    1       1        1    0      1       1    0      1
0500     1    0       1        0    0      0       0    0      0

0755:

Kuna failisüsteemis vastab igale üksikule õigusele üks bitt, siis kõneldakse vahel failiõiguste asemel faili loabittidest.

Kuna igaüks ei pruugi end kahendarvudega alguses mugavalt tunda, anname spikri- mnemoonika:

õigused    omanik - owner       grupp - group      teised - others
chmod   read write execute    read write execute  read write  execute
0777     4    2      1         4    2      1       4    2       1
0755     4    2      1         4    0      1       4    0       1
0500     4    0      1         0    0      0       0    0       0

0755:

SetUIDist tuleb juttu mujal.

Kataloogid on failid

Esialgu on ehk natuke kummaline mõelda kataloogidest kui erilistest failidest, milles on kirjas seal sisalduvate failide nimed, kuid tegelikult vastab see failisüsteemi tehnilisele korraldusele.

Niisiis, kataloog on fail, kus on kirjas selles kataloogis sisalduvate failide ja nn alamkataloogide nimed ning viited failide tegelikele asukohtadele.

Selgitame:

Failide ja kataloogide õigustega manipuleerides saab luua esmapilgul kummalisi tingimusi:

Kasulikud materjalid

  1. Kasutamine -> Quota

© EENet 2000