Linux/Unix failiõigused: Difference between revisions
Line 163: | Line 163: | ||
Et lisada/kustutada SUID kaustal: | Et lisada/kustutada SUID kaustal: | ||
<pre> chmod u+s kaust | <pre># chmod u+s kaust | ||
chmod u-s kaust </pre> | # chmod u-s kaust </pre> | ||
==SGID (Set Group ID)== | ==SGID (Set Group ID)== |
Revision as of 13:52, 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 (/var/tmp või /tmp). See võimaldab kasutajatel kirjutada, lugeda ja käivitada faile millede omanikuks on keegi teine, küll aga mitte kustutada neid.
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 kaustale/programmile, siis sinu kasutaja ID muudetakse vastavalt nagu selle programmi/kausta omanikul. Lihtsalt öeldes pärib käivitatav sinu õigused. Näiteks kui tahetakse käivitada programm/kaust 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 x asendab s -i
Et lisada/kustutada SUID kaustal:
# chmod u+s kaust # chmod u-s kaust
SGID (Set Group ID)
Samamoodi nagu SUID, muudetakse sinu grupi ID vastavalt faili/kausta ID-le, kui viimane käivitada.
See tuleb kasuks kui on palju kasutajaid, kes peavad üksteise failidele ligi saama.
Et lisada/kustutada SGID kaustal:
chmod g+s kaust chmod g-s kaust
Kui SGID on määratud, grupi õiguste all x asendab s -i :
ls -l kaust drwxrwsr-x 10 Kalle administrators 4096 2006-03-10 12:50 kaust
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