3.2. Õigused

FreeBSD, mille ajaloolised juured pärinevad BSD UNIX®ist, põhineb mitmetel UNIXi peamistel ideedel. Esimene ja kõige enam rõhutatu on see, et FreeBSD on mitme kasutaja operatsioonisüsteem. Süsteem suudab hallata korraga paljusid kasutajaid, kes võivad töötada täiesti erinevate asjade kallal. Süsteemi ülesandeks on jagada kasutajate vahel kõikvõimaliku riistvara, s.h. mälu ja CPU tööaega.

Kuna süsteem on võimeline toetama korraga mitut kasutajat, siis on kõikidel süsteemi ressurssidel komplekt õigusi, mis määravad, kes saab lugeda, kirjutada ja käivitada antud faili. Neid õigusi hoitakse kahe oktetina, mis on jagatud kolme ossa: üks faili omaniku, üks grupi kohta, kellele fail kuulub, ja üks kõigi ülejäänute kohta. See numbriline esitusviis töötab nii:

VäärtusÕigusKataloogi sisu
0Lugemisõigus puudub, kirjutamisõigus puudub, käivitamisõigus puudub---
1Lugemisõigus puudub, kirjutamisõigus puudub , käivitamisõigus on--x
2Lugemisõigus puudub, kirjutamisõigus on, käivitamisõigus puudub-w-
3Lugemisõigus puudub, kirjutamisõigus on, käivitamise õigus on-wx
4Lugemisõigus on, kirjutamisõigus puudub, käivitamisõigus puudubr--
5Lugemisõigus on, kirjutamisõigus puudub, käivitamisõigus onr-x
6Lugemisõigus on, kirjutamisõigus on, käivitamisõigus puudubrw-
7Lugemisõigus on, kirjutamisõigus on, käivitamisõigus onrwx

Kui vaadata detailset kataloogi sisu käsu ls(1) võtmega -l, siis üks tulpadest näitab faili õiguseid kasutajale, grupile ja kõigile teistele. See on jagatud järgnevalt:

-rw-r--r--

Esimene täht, vasakult paremale lugedes, on eriline täht, mis tähistab, kas tegu on tavalise failiga, kataloogiga, character- või blokkseadmega, soketiga või mõne muu erilise pseudo-fail seadmega. Järgnevad kolm tähte kujul rw- määravad faili omaniku õigused. Järgnevad kolm tähte, r-- annavad õigused grupile, kelle fail kuulub. Viimased kolm tähte, r--, määravad õigused kõigi ülejäänute jaoks. Sidekriips tähendab, et antud õigus puudub. Toodud faili näites on õigused sätitud nii, et omanik saab seda faili lugeda ja sinna kirjutada, grupp võib faili lugeda ja kõik teised saavad ka faili ainult lugeda. Ülaltoodud tabeli kohaselt oleksid selle faili õigused 644, kus iga number esindab kolme märki faili õigustes.

See on küll kõik tore, aga kuidas juhib süsteem õigusi seadmetele? FreeBSD käsitleb tegelikult enamikku riistvara failidena, mida programmid saavad avada, lugeda ja sinna andmeid kirjutada täpselt samamoodi nagu igasse teisegi faili. Need erilised seadmete failid paiknevad kataloogis /dev.

Katalooge koheldakse samuti failidena. Neil on lugemis-, kirjutamis- ja käivitamisõigused. Käivitamisõigust määraval bitil on kataloogide puhul veidi teine tähendus kui failide puhul. Kui kataloog on märgitud käivitatavaks, siis see tähendab, et sellesse kataloogi saab sisse, st. näiteks, et selle kataloogi sisu saab vaadelda. Samuti saab ligi selles kataloogis olevatele nimega failidele - see sõltub küll omakorda failidele endile määratud õigustest.

Täpsemalt läheb kataloogi sisu ekraanile toomiseks vaja, et kataloogile oleks määratud lugemisõigus. Samas, et kasutaja saaks talle teadaolevat faili kustutada, on vaja, et kataloogil, mis faili sisaldab, oleks nii kirjutus- kui käivitamisõigused.

Erinevaid õiguseid on veel, kuid neid kasutatakse peamiselt erilistes olukordades, nagu "setuid" bitiga binaarfailid ja "sticky" bitiga kataloogid. Kui sa tahad rohkem infot faili õiguste ja selle kohta, kuidas neid sättida, siis peaksid vaatama juhendit chmod(1).

3.2.1. Sümboolsed õigused

Autor: Tom Rhodes.

Sümboolsete õiguste puhul, mida vahel ka sümboolseteks väljenditeks kutsutakse, kasutatakse failidele ja kataloogidele õiguste määramisel kaheksandikväärtuste asemel tähti. Sümboolsetes väljendites kasutatakse süntaksit (kes) (tegevus) (õigused) ning võimalikud on järgmised väärtused:

ValikTähtNäitab
(kes)uKasutaja (user)
(kes)gGrupi omanik (group owner)
(kes)oTeised (other)
(kes)aKõik, kogu maailm (all)
(tegevus)+Õiguste lisamine
(tegevus)-Õiguste eemaldamine
(tegevus)=Õiguste range määramine
(õigused)rLugemine (read)
(õigused)wKirjutamine (write)
(õigused)xKäivitamine (execute)
(õigused)t"Sticky" bitt
(õigused)sUID või GID määramine

Neid väärtuseid kasutatakse samuti käsuga chmod(1), aga tähtedega. Näiteks võiksid järgnevat käsku kasutada siis, kui tahad teistele kasutajatele keelata ligipääsu FAILILE:

% chmod go= FAIL

Kui soovitakse teha mitut muudatust korraga, võib anda komadega eraldatud nimekirja. Näiteks järgmine käsk eemaldab gruppidelt ja ``maailmalt'' kirjutamisõigused FAILI, ning siis lisab kõigile kasutatajatele käivitusõiguse.

% chmod go-w,a+x FAIL

Suurem osa kasutajaid ei pane seda tähele, aga tuleks rõhutada, et kaheksandikmeetodiga ei saa õigusi lisada ega kustutada, neid saab ainult konkreetselt määrata.