| A knyvtr
Fentebb utaltunk r, knyvtr esetben kicsit mshogy mkdik a dolog. A futtatsi jog knyvtr esetn belpsi engedlyt takar, magyarn belelphetnk a knyvtrba. Azonban ez mg nem jelenti azt, hogy ott brmit is csinlhatunk, ugyanis pldul a knyvtr tartalmnak lekrdezshez mr olvassi jog kell, az rsrl nem is beszlve... Elllhat pldul az a furcsa helyzet, hogy a knyvtrba belelphetnk, de nem nzhetjk meg a tartalmt, de a fordtottja is: a knyvtr tartalma lthat szmunkra, mgsem lphetnk bele.
A linkek
Linux/Unix rendszerek esetben ha egy fjlt tbb helyen is hasznlni akarunk, lehetsgnk van linkek ltrehozsra, melyek az adott fjlra mutatnak. Ktfle linket klnbztetnk meg: szimbolikus linket (a tovbbiakban symlink) s un. hard linket. A kett kzt igen lnyeges klnbsgek vannak.
A symlink. Az egyszerbb s knnyebben hasznlhat link tpus. Ez tulajdonkpp egy fjl, aminek tartalma meghatrozza, hogy melyik fjlra mutat. Teht jl megklnbztethet az eredeti fjl, s a rmutat link. Amennyiben a fjlt, amire a link mutat trljk, megmarad a link, csak pp rvnytelen helyre mutat.
Azt, hogy a fjl symlink, a jogosultsgi tbla legelejn lthatjuk: az els karakter egy "l" bet lesz:
bbt@bbt:~/12$ ls -l itport2.hu lrwxrwxrwx 1 bbt bbt 9 2006-03-25 12:56 itport2.hu -> itport.hu
(Az itport2.hu symlink az itport.hu fjlra mutat.)
A hard link Lnyegesen korltozottabban hasznlhat link tpus, kizrlag partcin bell lehet hard linket ltrehozni. A leglnyegesebb klnbsg, hogy ebben az esetben nincs eredeti "fjl" s "link". Magt a linket is mlyebben kell keresni: Linuxos fjlrendszerekben tallhat egy tbla (inode tbla), amelyben a fjlok neveit rendelik hozz az adatterleten tallhat tnyleges adathoz. Hard link esetben kt bejegyzs is mutat ugyanarra a terletre. Amennyiben az egyiket trljk, az eltnik, de a msik megmarad. Csak az inode tblabeli bejegyzs tnt el. A hard link elnye, hogy az elrs sokkal gyorsabb, mint symlink esetn, ami egyes mveleteknl fontos lehet, htrnyt fentebb emltettk: csak partcin bell rtelmes (mivel a msik partci egy msik inode tblt is jelent...) Ha egy fjl hardlink is egyben, azt nem a jogosultsgi tbljn ltjuk, hanem az utna ll szmon:
bbt@bbt:~/12$ ls -l itport.hu -rwxrwxrwx 2 bbt bbt 0 2006-03-25 12:51 itport.hu
bbt@bbt:~/12$ ls -l itport3.hu -rwxrwxrwx 2 bbt bbt 0 2006-03-25 12:51 itport3.hu
(Az itport.hu s az itport3.hu mutat ugyanarra a tartalomra, hard linkek.)
Specilis jogok.
Setuid (set user identy), setgid (set group identy) Egyes programoknl szksg lehet specilis jogokra. ltalnos plda erre a passwd parancs: ezzel a paranccsal tudjuk megvltoztatni sajt jelszavunkat (rendszergazdaknt msokt is), azonban ennek a parancsnak bele kell rni olyan fjlba is, amihez csak rendszergazdai jogokkal frhet hozz - a jelszfjlba. Felmerl teht az igny, hogy ilyen esetekben ne sajt jogkrnkkel futtassuk az adott programot. Erre val a setuid bit. Amennyiben egy fjlra - esetnkben parancsfjlra ez a bit be van billentve, gy amikor a parancsot kiadjuk, az a mveleteket kvzi-rendszergazdaknt hajtja vgre, s ugyangy r a jelszfjlba, mintha azt rendszergazdaknt tennnk. Nincs ez msknt a setgid esetben sem, csak itt nem felhasznlra, hanem csoportra vettjk ki a tulajdonsgot.
Sticky bit A szoksos "minden cikkben van egy problms rsz"-hez rkeztnk. Rgebbi Linuxokon volt igazbl rtelme fjlra nzve, ilyenkor lnyegben a fjlt hasznl processz lefutsa utn a fjlt tovbbra is bent tartotta a memriban, vagy Swap-ben. Knyvtrnl ennl szebben is sikerl megfogalmazni: a knyvtrra rakott sticky bit esetben a szksges jogosultsgon kvl mg tulajdonosa is kell, hogy legynk a benne lv fjlnak, hogy trlhessk.
A fentebbi tulajdonsgok is lthatk, ha kilistzzuk a jogosultsgi listt, pl.: az elbb emltett fjlon, ha bebillentjk mindhrom bitet:
bbt@bbt:~/12$ ls -l itport.hu -rwurwgrwt 2 bbt bbt 0 2006-03-25 12:51 itport.hu
Amint lthat a tulajdonos futtatsi jognl az x lecserldtt u-ra (setuid), a csoportnl g-re (setgid), mindenki msnl meg t-re (sticky).
Specilis fjltpusok
Fentebb is tallkoztunk mr vele. Egy fjl esetben is llhat ms bet a jogosultsgi lista els helyn. Nzzk mik ezek:
d - Ha knyvtrrl van sz. l - ha symlimkrl van sz. Ezek mr ismersek. A tnyleg specilisak:
A /dev knyvtr alatt tallhatk specilis eszkzfjlok, melyeknl ez lehet "b" (blokk eszkz, block devices) pl.:
bbt@bbt:~/12$ ls -l /dev/hda1 brw-rw---- 1 root disk 3, 1 2006-03-07 22:27 /dev/hda1
(A primary master vincseszter els partcijra mutat blokk eszkz)
Lehet "c" pl.:
bbt@bbt:~/12$ ls -l /dev/dsp0 crw-rw---- 1 root audio 14, 3 2006-03-07 22:27 /dev/dsp0
(Ez az elsdleges hangkrtyra mutat "karakteres eszkzfjl".)
Illetve lehet "p" (cs eszkz, pipe):
bbt@bbt:~/12$ ls -l /dev/initctl prw------- 1 root root 0 2006-03-24 15:13 /dev/initctl
Igazbl ezen eszkzk kirszletezse mg egy cikket ignyelne, azonban olyan ritkn tallkozik vele egy tlagos felhasznl, hogy pontos kirszletezsktl eltekintennk.
Szmos rdekes klnlegessg figyelhet meg egy Linuxos fjlrendszeren, klnsen ha azt sszevetjk egy Windows-os NTFS fjlrendszerrel, illetve jogosultsgkezel rendszerrel, azonban ennl mlyebben belemerlni a tmba - klns tekintettel, hogy nem professzionlis sorozatrl van sz, gy rezzk felesleges. Ezen informcik j rsze azonban igen fontos lehet a gyakorlati letben is, egy tlag felhasznl szmra. Pldul, ha egy fjlt valamirt nem tudunk letrlni, vagy beleolvasni, els dolgunk legyen megnzni ki milyen jogosultsggal frhet hozz.
| |