lab5

Upload: markovuk

Post on 05-Nov-2015

10 views

Category:

Documents


1 download

DESCRIPTION

zfd

TRANSCRIPT

  • 1Elektrotehniki fakultet Banja LukaKatedra za raunarstvo i informatikuOperativni sistemi 1Laboratorijska vjeba 5 Kontrola pristupa na nivou sistema datoteka

    Priprema za rad1. Pregled pristupnih prava

    Kontrolu pristupa na nivou sistema datoteka (fajl sistema) ine vlasniki odnosi (pripadnostobjekata korisnicima i grupama) i prava pristupa koja se dodjeljuju svakoj datoteci i direktorijumu iodreuju ta korisnici mogu da rade. Komanda ls -l prikazuje potpuni UNIX kontekst za svakiobjekat, odnosno sve informacije o objektu (osim imena, sve informacije se itaju iz i-nodovaobjekata). I-nod predstavlja indeksnu strukturu na fajl sistemu u kojoj su zapisani svi podaci odatoteci ili folderu, osim imena. Iz potpunod konteksta je mogue vidjeti i vlasnike odnose vezaneza svaku datoteku i prava pristupa za odgovarajue vlasnike kategorije.

    Primjer:$ ls -lddrwxrwxr-x 2 jsmith nm 4096 dec 20 19:52 dir1-rw-r----- 1 root root 13597 dec 20 19:52 file2

    (1) (2) (3) (4) (5) (6)

    (1) tip i prava pristupa,(2) vlasnik,(3) grupa,(4) veliina,(5) datum i vrijeme izmjene,(6) naziv.

    Tip datoteke i privilegije (1):- karakter 1: d - direktorijum, - - datoteka, l - simboliki link, p - pipe, c - karakter ureaj, b -

    blok ureaj,- karakteri 2-10: prava pristupa objektu za tri vlasnike kategorije (vlasnik, grupa i ostali).Vlasnike kategorije za koje se dodjeljuju privilegije nad pojedinim objektima su:- vlasnik (owner) - korisnik koji je kreirao objekat, odnosno korisnik kome je root dodijelio

    vlasnitvo,- grupa (group) - primarna grupa korisnika koji je objekat kreirao ili grupa kojoj je root dodijelio

    vlasnitvo,- ostali (others) - svi korisnici koji nisu ni vlasnik objekta, niti pripadaju grupi kojoj objekat pripada.

    Prava pristupa nekog korisnika odreuju se prema vlasnikoj kategoriji kojoj korisnik pripada.Rezultujue pravo vlasnika koji pripada grupi kojoj je objekat dodijeljen odreuje se kao unija pravavlasnika i grupe (kod starijih UNIX-a) ili kao pravo vlasnika (kod POSIX-compliant UNIX-a, kao toje Linux).Potpuni skup prava za svaku vlasniku kategoriju ine pravo itanja (r read), pravo upisa (w write) i pravo izvravanja (x - execute). Kod zapisivanja pristupnih prava, u svim vlasnikimkategorijama prva pozicija predstavlja pravo itanja, druga upisa i trea izvravanja - rwx.Ukoliko se na nekoj poziciji umjesto slova r, w ili x nalazi crtica (-), pravo je ukinuto.

    Oznakapristupnog

    pravaZnaenje u odnosu na datoteku Znaenje u odnosu na direktorijum

    r itanje sadraja datoteke (prikazivanje naekranu, tampanje, kopiranje)itanje sadraja direktorijuma, tj. file-infostruktura (korisnik moe da izvri komandu

  • 2ls)w izmjena sadraja datoteke (ne znai dakorisnik moe da obrie datoteku)

    izmjena sadraja direktorijuma, dodavanjenovih i brisanje postojeih objekata u njemu

    x izvravanje datoteke (ako je u pitanju shellprogram ili binarna izvrna datoteka)pozicioniranje na dir. (cd), dugaki listingsadraja (ls -l) i pretraivanje direktorijuma(find)

    Da bi direktorijum na Linuxu bio praktino upotrebljiv korisnicima treba dati prava r i x.

    Primjer:ls -l /develop/win-genocide/exploit-rwxr-x--- 1 jsmith abusers 509 Mar 10 17:21 exploit

    Redni brojkaraktera

    Vrijednostkaraktera Znaenje

    1 - radi se o regularnoj datoteci2-4 rwx vlasnik datoteke (korisnik jsmith) moe itati, modifikovati i izvravatidatoteku5-7 r-x korisnici koji pripadaju grupi abusers mogu itati i izvravati datoteku8-10 --- ostali korisnici nemaju privilegija za rad sa datotekom

    Pristupna prava je mogue oznaavati oktalnim ciframa, pri emu jedna oktalna cifra pokazujeskup svih prava za jednu vlasniku kategoriju.

    Oktalna cifra Vrijednost po teinama Privilegije7 4+2+1 rwx6 4+2+0 rw-5 4+0+1 r-x4 4+0+0 r--3 0+2+1 -wx2 0+2+0 -w-1 0+0+1 --x0 0+0+0 ---

    2. Podrazumijevana pristupna prava

    Pri kreiranju, Linux dodjeljuje kreiranom objektu vlasnika i grupu i postavlja takozvanapodrazumijevana prava pristupa. Korisnik koji kreira objekat postaje njegov vlasnik, a objekat sedodjeljuje primarnoj grupi tog korisnika. Inicijalna prava pristupa se dodjeljuju na osnovu vrijednostipromenljive umask. Svaki korisnik ima sopstvenu vrijednost umask promjenljive, koja se postavljaprilikom prijavljivanja na sistem. Trenutna vrednost moe se vidjeti i promijeniti pomou istoimenekomande. Inicijalna prava za direktorijume i datoteke su 777 i 666, respektivno, a konana pravase dobijaju logikim I inicijalnih prava i komplementa umask promjenljive. Ako je vrijednostumask promjenljive prikazana koritenjem 4 oktalne cifre, prva cifra se odnosi na setuid (4), setgid(2) i stickybit (1) permisije (ove permisije su opisane u nastavku teksta).$ umask 027$ umask0027$ mkdir mydir$ touch myfile$ ls -ldrwxr-x--- 2 nm nm 4096 dec 23 14:33 mydir-rw-r----- 1 nm nm 0 dec 23 14:33 myfile

  • 3Vlasnik, grupa i prava pristupa se dodjeljuju svakom objektu prilikom kreiranja, a kasnije se mogupromijeniti. Samo vlasnik objekta ili root korisnik mogu promijeniti prava pristupa, dok samo rootmoe promijeniti vlasnike odnose.

    3. Promjena pristupnih prava

    Pristupna prava je mogue modifikovati koritenjem komande chmod. Samo vlasnik objekta iliroot korisnik mogu izvriti modifikaciju pristupnih prava za neki objekat. Postoje dva naina zapromjenu pristupnih prava (dva naina upotrebe komande chmod):

    a) Simboliki nain$ chmod [-R] kategorije operator permisije[,...] naziv- kategorije: vlasnik u, grupa g, ostali o, sve vlasnike kategorije a,- operator: dodjela prava +, ukidanje prava , dodjela tano odreenih prava =,- permisije: itanje r, upis w, izvravanje x,- -R: promjena pristupnih prava direktorijuma i svih njegovih objekata (poddirektorijuma i

    datoteka, rekurzivno).Primjer:$ ls -l myfile-rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile$ chmod u=rx,go-w myfile # postavljen r-x vlasniku, oduzet w grupi iostalima$ ls -l myfile-r-xr--r-- 1 nm nm 0 dec 23 15:25 myfile

    b) Oktalni nain$ chmod [-R] permisije nazivKada se koristi oktalni reim moraju se navesti sve tri oktalne cifre, odnosno pristupna prava zasve tri vlasnike kategorije, u tanom redoslijedu (vlasniko pravo - grupno pravo - pravo za ostalekorisnike).

    Primjer:$ ls -l myfile-rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile$ chmod 755 myfile$ ls -l myfile-rwxr-xr-x 1 nm nm 0 dec 23 15:25 myfile

    4. Promjena vlasnitva i grupe# chown [-R] korisnik naziv# chgrp [-R] grupa naziv

    Primjer:# ls -l myfile-rw-r--r-- 1 nm staff 0 Apr 28 12:07 myfile# chown jsmith myfile# chgrp users myfile# ls -l myfile-rw-r--r-- 1 jsmith users 0 Apr 28 12:07 myfile

    5. SUID i SGID (s)

  • 4SUID (Set User ID) predstavlja mogunost izvravanja programa pod identitetom vlasnikaprograma (ako postoji datoteka iji je vlasnik korisnik root i kod koje je setovan SUID bit, tada seta datoteka izvrava pod root nalogom, bez obzira koji korisnik pokrene izvravanje). SUID bit sepostavlja/uklanja komandom chmod, tako to se kategoriji vlasnika dodaje/oduzima pravo s.Nakon setovanja SUID bita, na mjestu prava x vlasnika nalazi se oznaka s.

    Primjer:# chmod u+s myexploit# ls -l myexploit-rwsr-xr-x 1 root staff 2344 dec 23 15:25 myexploit

    SGID bit ima znaenje analogno SUID bitu, ali se odnosi na x prava grupe. SGID bit sepostavlja/uklanja komandom chmod, tako to se kategoriji grupe dodaje/oduzima pravo s:

    Primjer:$ chmod g+s public_backup$ ls -l public_bekap-rwsr-sr-x 1 nm nm 2344 dec 23 15:25 public_backup

    6. Sticky bit (t)

    Na javno dostupnim direktorijumima (kao to je /tmp) tipina prava pristupa su 777. Ovoomoguava bilo kojem korisniku da brie proizvoljan sadraj u datom direktorijumu. Postavljanjemsticky bita za direktorijum se uvodi ogranienje da svaki korisnik moe obrisati samo svojedatoteke u tom direktorijumu (datoteke iji je on vlasnik). Sticky bit se postavlja/ukidadodjelom/oduzimanjem prava t svim vlasnikim kategorijama u simbolikom reimu ili navoenjemcifre 1 (ili 0, za ukidanje) prije pristupnih prava u oktalnom reimu.

    Primjer:$ ls -l public_dir-rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir1$ chmod +t public_dir1$ ls -l public_dir1-rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir1

    $ ls -l public_dir2-rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir2$ chmod 1777 public_dir2$ ls -l public_dir2-rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir2

    Dodatna literaturaDetaljniji opis funkcionalnosti komandi navedenih u okviru vjebe je dostupan u knjizi Operativni

    sistemi: UNIX i Linux. Kompletna dokumentacija koritenih komandi je dostupna na odgovarajuim manstranicama. Koritenje man stranica je dozvoljeno i poeljno u toku laboratorijskih vjebi.

  • 5Zadaci1. Pripremni zadaci

    a) prijaviti se na sistem pod korisnikim nalogom student (korisniko ime: student, lozinka:student),

    b) pozicionirati se u home direktorijum korisnika (/home/student)

    2. Prebaciti se u aktivnom terminalu na administratorski nalog (root, lozinka: student),

    3. Zadati sljedee komande koje e oistiti sistem od naloga koritenih u prethodnoj vjebi ili udrugim grupama:

    userdel korisnik1userdel korisnik2userdel korisnik3groupdel korisnicirm -rf /home/korisnik*rm -rf /stickerrm /tmp/myfile

    4. Kreiranje korisnikih nalogaa) Kreirati nove korisnike naloge korisnik1, korisnik2, korisnik3 komandom useradd. Nakon

    kreiranja naloga postaviti lozinke na date vrijednosti. Parametri za nove naloge su sljedei:- korisniko ime: korisnik1, lozinka: 123456, puno ime: Prvi Korisnik,- korisniko ime: korisnik2, lozinka: 123456, puno ime: Drugi Korisnik,- korisniko ime: korisnik3, lozinka: 123456, puno ime: Trei Korisnik.Provjeriti da li su nalozi funkcionalni, tj. da li su korisnici uspjeno kreirani,

    b) Kreirati regularnu grupu korisnici i u nju ulaniti korisnike korisnik1, korisnik2, i korisnik3(editovanjem datoteke /etc/group).

    5. Pregled pristupnih pravaa) Prebaciti se u aktivnom terminalu na nalog korisnik1 (korisnik1, lozinka: 123456),b) Prikazati puni UNIX kontekst datoteke /etc/passwd,c) Prikazati sadraj direktorijuma /etc,d) Prikazati kontekst direktorijuma (atributi iz i-noda) /etc,e) Prikazati skrivene datoteke u direktorijumu /home/korisnik1.

    6. Podrazumijevana pristupna prava i vlasnitvo novih datoteka i direktorijumaa) Provjeriti vrijednost umask promenljive. Odrediti vrijednost inicijalnih prava za datoteke i

    direktorijume koje kreira korisnik korisnik1,b) U home direktorijumu prijavljenog korisnika kreirati novu datoteku pod nazivom myfile

    koritenjem komande touch. Provjeriti konana pristupna prava za novokreiranu datoteku,c) Ukloniti datoteku myfile,d) Kreirati novi direktorijum mydir unutar home direktorijuma. Provjeriti konana pristupna

    prama za novokreirani direktorijum,e) Ukloniti direktorijum mydir.

    7. Promjena vrijednosti promjenljive umaska) Promijeniti vrijednost umask promjenljive za korisnika korisnik1 na 027. Koja su inicijalna

    pristupna prava sa novom vrijednou umask promjenljive?b) Izvriti ponovo zadatke pod takom 3 i provjeriti nove vrijednosti pristupnih prava za kreiranu

    datoteku i direktorijum.

  • 68. Funkcionisanje pristupnih pravaa) Prebaciti se u aktivnom terminalu na nalog korisnik2, poto pristupna prava ne utiu na root

    korisniki nalog,b) Provjeriti i objasniti zato je sljedee komande mogue ili nemogue izvriti. Prije izvravanja

    bilo koje komande odrediti prava nad konkretnom datotekom u odnosu na sopstvene vlasnikekategorije:- prelazak na /root direktorijum: cd /root- pregledanje sadraja /etc/shadow datoteke: cat /etc/shadow- pregledanje sadraja /etc/passwd datoteke: cat /etc/passwd- upis u /bin direktorijum: touch /bin/myfile- brisanje datoteke iz /bin direktorijuma: rm /bin/cp.

    9. Promjena vlasnikih odnosaa) Provjeriti da li je trenutno prijavljen korisnik1. Po potrebi, izvriti promjenu aktivnog naloga u

    terminalu na nalog korisnik1,b) Kreirati novu datoteku unutar home direktorijuma prijavljenog korisnika pod nazivom myfile,c) Pokuati promjenu vlasnika datoteke na nalog korisnik2. Pokuati promjenu grupe kojoj

    datoteka pripada. Da li su date promjene dozvoljene? Zbog ega?d) Obrisati datoteku myfile,e) Prebaciti se na administratorski nalog (root, lozinka: student).f) U direktorijumu /tmp kreirati novu datoteku myfile,g) Pokuati promjenu vlasnika datoteke na nalog korisnik2. Pokuati promjenu grupe kojoj

    datoteka pripada. Da li su date promjene dozvoljene? Zbog ega?h) Obrisati datoteku myfile.

    10. Promjena pristupnih prava oktalni reima) Prebaciti se u aktivnom terminalu na nalog korisnik1 (korisnik1, lozinka: 123456),b) Kreirati u home direktorijumu korisnika datoteku pod nazivom testiranje,c) Postaviti svima pravo itanja i izvravanja nad kreiranom datotekom (jednom komandom) i

    provjeriti rezultat,d) Postaviti svima sva prava nad kreiranom datotekom (jednom komandom) i provjeriti rezultat,e) Postaviti jednom komandom vlasniku sva prava, a grupi prava itanja i izvravanja nad

    kreiranom datotekom. Ostalim korisnicima oduzeti sva prava nad datotekom. Provjeriti rezultat,f) Obrisati datoteku testiranje.

    11. Promjena pristupnih prava simboliki reima) Postaviti vrijednost promjenljive umask tako da vlasnik ima rw- a grupa i ostali r-- za sve

    datoteke koje korisnik kreira,b) Kreirati u home direktorijumu korisnika datoteku testiranje i provjeriti konana prava

    pristupa,c) Koristei simboliki reim, dodati grupi i ostalima jednom komandom pravo upisa nad

    kreiranom datotekom. Provjeriti rezultat,d) Napisati prethodnu komandu u oktalnom reimu,e) Koristei simboliki reim, oduzeti kategoriji ostalih korisnika jednom komandom sva prava nad

    kreiranom datotekom. Provjeriti rezultat,f) Napisati prethodnu komandu u oktalnom reimu,g) Koristei simboliki reim, dodati vlasniku i grupi jednom komandom pravo izvravanja nad

    kreiranom datotekom. Provjeriti rezultat,h) Napisati prethodnu komandu u oktalnom reimu,i) Koristei simboliki reim, dodati svim korisnicima jednom komandom sva prava nad kreiranom

    datotekom. Provjeriti rezultat,j) Napisati prethodnu komandu u oktalnom reimu,

  • 7k) Obrisati datoteku testiranje.

    12. Sticky bita) Prebaciti se u aktivnom terminalu na administratorski nalog (root, lozinka: student).b) Kreirati direktorijum /sticker i dati svima sva prava nad kreiranim direktorijumom,c) Postaviti sticky bit za kreirani direktorijum. Provjeriti rezultat odgovarajuom komandom,d) Odjaviti se sa administratorskog naloga i prebaciti se na nalog korisnik1 (korisnik1, lozinka:

    123456),e) Kreirati jednu datoteku unutar direktorijuma /sticker pod nazivom myfile,f) Prebaciti se na nalog korisnik2 (korisnik2, lozinka: 123456),g) Pokuati brisanje datoteke myfile. Da li je brisanje dozvoljeno? Zbog ega? ,h) Prebaciti se na administratorski nalog (root, lozinka: student),i) Pokuati brisanje datoteke myfile. Da li je brisanje dozvoljeno iako root nije vlasnik datoteke?j) Obrisati direktorijum /sticker,k) Odjaviti se sa sistema.

    13. SUID i SGID bitia) Prebaciti se na nalog korisnik1 (korisnik1, lozinka: 123456),b) U home direktorijumu prijavljenog korisnika kreirati datoteku mycopy1 kopiranjem datoteke pod

    nazivom cp iz direktorijuma /binc) Dati svima pravo izravanja nad kopiranom datotekom,d) Postaviti SUID bit,e) Kreirati na isti nain (kopiranjem /bin/cp datoteke) jo jednu datoteku pod nazivom mycopy2f) Dati svima pravo izravanja nad kopiranom datotekom,g) Postaviti SGID bit,h) Objasniti ta se deava ako neki korisnik pokrene datoteke mycopy1 i mycopy2. Testirati

    datoteke (kopirati proizvoljne datoteke u home direktorijum prijavljenog korisnika),i) Obrisati kopirane datoteke i odjaviti se sa sistema.

    14. Komanda cp - potrebni i dovoljni uslovi za izvravanje komande cpa) Kreirati dva direktorijuma u sopstvenom home direktorijumu pod nazivima dir1 i dir2,b) Kreirati datoteku pod nazivom file1 u direktorijumu dir1 kopiranjem datoteke

    /etc/passwd,c) Dodijeliti sva prava nad direktorijumima vlasniku (tj. sebi). Dodijeliti sva prava nad datotekom

    vlasniku,d) Pokuati kopiranje datoteke iz direktorijuma dir1 u dir2.e) Obrisati kreiranu kopiju. Ukidati redom jedno po jedno pristupno pravo (redom, r, w, x) nad

    direktorijumom dir1 (i njegovim kompletnim sadrajem) i ponoviti kopiranje. Utvrditi koja suminimalna prava potrebna za kopiranje neke datoteke.

    f) Obrisati direktorijume dir1 i dir2.

    15. Komanda mv analiziranje vlasnikih odnosa i pristupnih prava datoteka koje se pomjerajua) Kreirati dva direktorijuma pod nazivima src i dst u sopstvenom home direktorijumu,b) Kreirati datoteku u direktorijumu src pod nazivom file1,c) Pogledati prava pristupa i vlasnike odnose datoteke src/file1,d) Pomjeriti datoteku file1 u direktorijum dst,e) Pogledati prava pristupa i vlasnike odnose datoteke dst/file1,f) Odrediti ta se desilo sa vlasnitvom i pravima pristupa,g) Obrisati direktorijume src i dst.

    16. ienje sistema

  • 8a) Prebaciti se na administratorski nalog (root, lozinka: student),b) Obrisati grupu korisnici i provjeriti da li je grupa obrisana izvravanjem komande cat

    /etc/group | grep korisnici,c) Obrisati naloge korisnik1, korisnik2 i korisnik3 komandom userdeld) Provjeriti da li su korisnici obrisani komandom cat /etc/passwd | grep korisnike) Obrisati line direktorijume korisnika komandom rm -rf /home/korisnik*f) Provjeriti da li su home direktorijumi korisnika obrisani komandom ls -l /home | grep

    korisnikg) Odjaviti se sa sistema.