Failide omanikud, grupid ja kasutajate õigused
Failiõiguste muutmine
Failiomaniku ja -grupi muutmine
Kataloogid on failid
Kasulikud materjalid
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'.
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--
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 ...
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.
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:
© EENet 2000