Linux/Unix failiõigused: Difference between revisions
Line 197: | Line 197: | ||
ACL kasutatakse tavaliselt õiguste seadmiseks ühele failisüsteemi objektile | ACL kasutatakse tavaliselt õiguste seadmiseks ühele failisüsteemi objektile | ||
'''ls -l''' - kuvab omaniku, grupi ja teiste klasside õigused | '''ls -l''' - kuvab omaniku, grupi ja teiste klasside õigused |
Revision as of 14:46, 6 June 2011
Sissejuhatus
Igal failil süsteemis, peab olema määratud kes võib sellega mida teha. Failiõigused on defineeritud kasutajatele, gruppidele ja kõikidele teistele kes ei ole faili omanikud ning ei kuulu antud gruppi (others). Iga kasutaja kuulub ühte või mitmesse gruppi. Samuti kuulub iga fail mingile kasutajale ning seega ka kasutaja gruppi. Kui kasutaja loob faili, siis on ta selle faili omanikuks. Samuti looja grupp ning kausta grupp kus fail asub, on seostatud selle failiga. Kasutades gruppe, saab piirata/lubada tegevusi teatud hulgal inimestel, mis on töökeskkonnas hädavajalik.
Kasutajad ja Õigused
Igale failile on määratud kolme tüüpi kasutajad:
user ( u ) - kasutaja kes omab/kontrollib faili group ( g ) - grupp kes omab/kontrollib faili others ( o ) - igaüks kes ei ole omanik ega ka grupis
Kasutajatele on määratud kolme tüüpi õigused:
read ( r ) - annab võime lugeda faili. Kui aga see on määratud kataloogile, siis võimaldab lugeda faili nimesi selles kaustas(küll aga mitte saada lisainfot nt faili tüüp, suurus, õigused jne ) write ( w ) - kirjutamis õigus, mis annab võime muuta faili. Kui määratud kataloogile, siis annab võime muuta sisestusi selles kaustas nn failide loomine/kustutamine, ümbernimetamine. execute ( x ) - annab võime avada/käivitada faili. Kui on aga määratud kaustale, võimaldab läbida alamkataloogide puu, ligipääseda failidele. Küll aga ei võimalda failide sisu näha (kui just read pole määratud)
Kuidas näha failiõigusi
Et näha mis õigused failil on, tuleb sisestada:
ls -l failinimi/kaustanimi ls -l (et näha kõiki faile ja katalooge)
kriips (-) tähendab et õigust ei ole määratud
Kuidas muuta failiõigusi
Failiõigusi saab muuta kasutades käsku "chmod".
Näiteks kui Malle tahab anda minufaili kirjutamisõiguse administraatoritele, siis ta kirjutab:
chmod g+w minufail
g tähendab faili gruppi (administraatorid)
w tähendab kirjutamiõigust
+ tähendab andmist
chmod kasutatakse nelja parameetri järgi:
-Kasutajate tüüp kellel õigusi muuta (u - user, g -gruop, o - others, kas kombintatsioon nendest või "a" et määrata kõik)
-Mis tüüpi muudatust teha("+" et lisada õigus, "-" et õigus ära võtta, "=" et määrata õigused)
-Millised muudatusi õigustes teha(r - read, w - write, x - execute)
-Fail või grupp faile, millele muudatusi teha (failinimi)
Kausta õigused vs. failiõigused
LINUX/UNIX keskkonnas käivad kõik õigused ülevalt alla "topdown". See tähendab, kui keelata näiteks group õigused mingil kaustal, siis kõik alamkaustad ja failid pärivad samad õigused, kuigi visuaalselt seda näha ei ole. Näiteks kui õigused kaustale projekt on: drwxr-xr-x ja õigused kaustale projekt1 on: drwxr-xr-x. Keelates grupil ja teistel sisenemine kausta projekt, ehk õigused oleks drwx------, siis alamkausta projekt1 õigused jäävad visuaalselt samaks: drwxr-xr-x. Ainult et group ja others liikmetel tegelikult ei ole õiguseid mis on näidatud alamkaustal projekt1. Sama süsteem toimub, ainult et taguripidi, kui luua alamkaust ning määrata õigused lubamaks kasutajatel ja teistel siseneda kausta. Neil ei ole võimalik kausta siseneda kui puudub õigus siseneda kõikidesse eelnevatesse kaustadesse.
Octal System (kaheksandsüsteem)
Tihtipeale administraatorid kasutavad ka arvu süsteemi, mis asendab senised u,g,o ja a,r,w,x numbritega. Peamiselt eelistatakse seda kasutada just töö kiiremaks muutmise pärast. Samuti nende käskudega mitte ei lisata/võeta õigusi vaid ainult määratakse neid, seega võib tulemustes kindel olla.
Õiguste väärtused
- 0 x 1 w 2 r 4 --- 0 --x 1 -w- 2 -wx 3 r-- 4 r-x 5 rw- 6 rwx 7
Näide:
chmod 750 minufail
750 tähendab: 7(rwx) omanikule, 5(r-x) grupile ning 0(---) teistele
Eelnev käsk on võrdne käsuga:
chmod u=rwx,g=rx myfile; chmod o-rwx minufail
Faili omaniku/grupi muutmine
Faili omanikuks saab määrata ka mingit teist kasutajat või gruppi. Kasutades käsku chown saab muuta faili omaniku ning chgrp käsuga faili gruppi, kuhu ta kuulub.
Näide: Malle tahab minufaili omanikuks teha hoopis Kalle, siis ta kirjutab:
chown Kalle minufail
Kalle tahab hiljem minufaili teha saadavaks ainult grupile bossid:
chgrp bossid minufail
Sama saab korda saata ka "chown" käsuga:
chown Kalle:bossid minufail
Sticky Bit
Üldiselt kasutatakse Sticky Bit'i jagatud kaustade puhul ( /tmp). Kui see on kaustale määratud, siis ainult kausta/faili omanik või superuser saab kustutada/ümbernimetada faile. Kui aga Sticky bit pole määratud, siis iga kasutaja kellel on kirjutamis/käivitamis õigused antud kaustale, võib kusutada/ümbernimetada selles sisalduvaid faile (olenemata omanikust).
Sellist erilist käsitlemist vajavad just avalikud kaustad, kus kasutajad peavad saama muudatusi teha. Omavoliliselt failide ümbernimetamine või kustutamine on aga keelatud.
Sticky Bit õiguste kindlaks tegemine kaustal (osadel kaustadel on see juba määratud):
# ls -ld /var/tmp drwxrwxrwt 2 sys sys 512 Jun 20 11:02 /var/tmp
t - näitab et Sticky Bit on määratud
Et lisada/kustutada sticky bit kaustal, kasuta:
# chmod +t /tmp # chmod -t /tmp
SUID (Set User ID)
Kui SUID on määratud failile/programmile, siis sinu kasutaja ID muudetakse vastavalt nagu selle programmi/faili omanikul. Lihtsalt öeldes pärib käivitatav sinu õigused. Näiteks kui tahetakse käivitada programm/fail millel on root õigused ja SUID määratud, siis tavakasutaja saab seda käivitada kui juurkasutaja.
Kui SUID on määratud, siis omaniku õiguste all s asendab x -i :
-rwSr--r-- 1 root root 2321 2011-05-26 12:15 kala.txt
Et lisada/kustutada SUID failil:
# chmod u+s fail # chmod u-s fail
SGID (Set Group ID)
Samamoodi nagu SUID, muudetakse sinu grupi ID vastavalt faili/kausta ID-le, kui viimane käivitada. Lihtsamalt öeldes pärib käivitatav sinu grupiõigused.
See tuleb kasuks kui on palju kasutajaid, kes peavad üksteise failidele ligi saama.
SGID määramine kataloogile, annab seal olevatele failidele/alamkataloogidele grupi omanduse.
Et lisada/kustutada SGID kaustal:
# chmod g+s kaust # chmod g-s kaust
Kui SGID on määratud, grupi õiguste all s asendab x -i :
ls -l kaust drwxrwsr-x 10 Kalle administrators 4096 2006-03-10 12:50 kaust
POSIX õigused (ACL)
Kui soovitakse objektile seada keerulisemaid ja mitmekesisemaid õiguseid siis võetakse appi ACL (Access Control List), mis on nimekiri ühe objektiga seotud õigustest. Selle abil saab kindlale kasutajale ja grupile teha juurde lisaõigusi.
ACL kasutatakse tavaliselt õiguste seadmiseks ühele failisüsteemi objektile
ls -l - kuvab omaniku, grupi ja teiste klasside õigused
setfacl - muudab objekti ACL õigusi
getfacl - kuvab objekti spetsiifilised ACL õigused
POSIX õigustest on täpsemalt räägitud eraldi teemas
Kasutatud kirjandus
http://www.linuxforums.org/articles/file-permissions_94.html
http://en.wikipedia.org/wiki/Filesystem_permissions
http://blogs.simplythebest.net/RadianT/4/UnixLinux+File+Permissions.html
Autor
Sten Vaisma A22