Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Visoka škola elektrotehnike i računarstva strukovnih
- studija
- Beograd
- OPERATIVNI SISTEMI 1
- VEŽBA 1
- Uvod
- Sadržaj:
- 1. Uvodne napomene
- 2. Upoznavanje sa radnim okruženjem operativnog sistema Ubuntu Linux
- 3. Prijavljivanje na Moodle sistem za e-učenje
- 4. Kreiranje virtuelnih mašina
- 5. Upotreba virtuelnih mašina
- 6. Upoznavanje sa komandnom linijom
- 7. Objašnjenje mehanizma "sudo"
- Nemanja Maček
- Borislav Đorđević
- Borislav Krneta
- Beograd, 2015
- Uvod
- 1. Uvodne napomene
- Profesor:
- • Borislav Đorđević, bora@impcomputers.com
- Asistenti:
- • Nemanja Maček, nmacek@viser.edu.rs
- • Borislav Krneta, borak@viser.edu.rs
- 1. Prisustvo na vežbama
- • Prisustvo na vežbama ne donosi poene za formiranje konačne ocene ali je uslov za
- izlazak na ispit.
- • Uslov stičete ukoliko prisustvujete na najmanje 80% vežbi. Na primer, ako u semestru
- ima deset vežbi, potrebno je da odradite najmanje 8.
- • Ukoliko ste zaposleni ili iz nekih drugih razloga sprečeni da dolazite na vežbe, molimo vas
- da nam to unapred najavite (npr. donesite potvrdu o zaposlenju). Ukoliko odsustvo u
- prvim terminima "najavite" pred kraj semestra, izostanci neće biti opravdani.
- 2. Odbrana vežbi
- • Uspešno odbranjene vežbe su uslov za izlazak na ispit.
- • Vežbe se brane polaganjem dva testa sa više ponuđenih odgovora, koji se rade na
- računaru u terminima vežbi u toku semestra.
- • Vežbe su odbranjene ukoliko na oba testa osvojite najmanje 50% poena.
- • Pred svaku odbranu vežbi organizuje se pripremni test sa sličnim pitanjima.
- 3. Ispit
- • Ispit se radi na računaru u vidu testa sa više ponuđenih odgovora.
- • Ukoliko želite, ispit možete da položite i preko dva kolokvijuma.
- • Pre svakog kolokvijuma se organizuje pripremni test sa sličnim pitanjima.
- • Ispit je položen ukoliko (1) na ispitu osvojite najmanje 50% poena ili (2) na oba
- kolokvijuma osvojite najmanje 50% poena.
- 4. Formiranje ocene
- • Dve odbrane vežbi: 2 x 15 poena (ukupno 30)
- • Dva kolokvijuma: 2 x 35 poena (ukupno 70) ili ispit (70)
- • (ispit + dve odbrane vežbi) ili (dva kolokvijuma + dve odbrane vežbi) ∈ [0, 100]
- • 0-50 → 5, 51-60 → 6, 61-70 → 7, 71-80 → 8, 81-90 → 9, 91-100 → 10.
- 1
- Uvod
- 2. Upoznavanje sa radnim okruženjem operativnog sistema Ubuntu Linux
- Kada uključite računar, u tzv. boot manager-u (GRUB), odaberite Ubuntu Linux.
- Na sistem se prijavite svojim korisničkim imenom i lozinkom, na primer:
- • username: peranrt1202
- • password: jeronimo
- Nakon prijavljivanja pojavljuje se Gnome grafičko radno okruženje (slika 1).
- Slika 1. Radna površina
- • Sa leve strane radne površine nalazi se pokretačka linija. Na pokretačkoj liniji su
- poređane najčešće korišćene aplikacije (lična fascikla, Mozilla Firefox Web browser,
- aplikacije iz Libre Office paketa). Na vrhu pokretačke linije se nalazi alatka za
- pretraživanje: "poletnik" (pretraži računar i mesta na mreži), pomoću koje možete da
- pronađete dokumenta ili aplikacije na vašem sistemu.
- • Linija sa menijima trenutno aktivne aplikacije se, u podrazumevanom stanju, ne nalazi u
- okviru prozora date aplikacije. Ona je smeštena u glavnom meniju operativnog sistema
- koji se nalazi na vrhu radne površine, koji se prilagođava programu koji trenutno koristite.
- • U gornjem desnom uglu nalazi se indikator o mrežnim konekcijama, dugme za odabir
- rasporeda tastature, sat i dugme za odjavljivanje ili isključivanje računara.
- 2
- Uvod
- Programe pokrećete pritiskom na ikonicu:
- Nakon toga, dobijate pretraživač u kome je potrebno da uneste ključne reči. Nakon unosa
- ključnih reči, nude vam se rezultati pronađeni na osnovu ključnih reči (slika 2). Iz dijaloga vi
- odabirate program koji želite da pokrenete ili datoteku koju želite da otvorite.
- I
- Slika 2. Pretraživač programa, datoteka i mesta na mreži
- Ličnu fasciklu otvarate pritiskom na ikonicu:
- Nakon toga otvara se sadržaj lične fascikle (slika 3).
- Slika 3. Sadržaj lične fascikle
- 3
- Uvod
- Firefox pokrećete pritiskom na ikonicu:
- Nakon toga se otvara Web pretraživač. Do podešavanja pretraživača možete doći odabirom
- opcije "uređivanje → postavke" iz padajućeg menija ili na način prikazan na slici 4.
- Slika 4. Pristupanje podešavanjima Firefox-a
- Podešavanja vezana za mrežu (I PROXY!) nalaze se u kartici "Mreža" (slika 5).
- Slika 5. Podešavanja vezana za mrežu
- 4
- Uvod
- Proxy se podešava pritiskom na dugme "Postavke" u kartici "Mreža". Otvoriće se dijalog (slika 6)
- u kome možete da odaberete:
- • da li želite da Firefox ne koristite proxy,
- • da li želite da Firefox samostalno otkrije podešavanja proksija,
- • da li želite da Firefox koristi sistemska podešavanja, ili
- • da želite samostalno da navedete adresu i port proxy servera.
- Slika 6. Podešavanje proxy servera
- NAPOMENA: PRILIKOM POLAGANJA TESTOVA ZA ODBRANU VEŽBI, KOLOKVIJUMA I ISPITA,
- NEOPHODNO JE DA ODABERETE "Samostalno otkrivanje postavki proksija". UKOLIKO TO IZ NEKIH
- RAZLOGA NE RADI, isključite proksi.
- 5
- Uvod
- 3. Prijavljivanje na Moodle sistem za e-učenje
- Materijali sa vežbi i predavanja, kao i dodatna literatura nalaze se na Moodle sistemu za učenje.
- Moodle sistemu se pristupa na sledećoj lokaciji.
- • http://lectio.viser.edu.rs
- Najpre se na sistem prijavite sa svojim korisničkim imenom i lozinkom, kao što je prikazano na
- slici 7.
- Slika 7. Prijavljivanje na Moodle sistem za e-učenje
- U okviru Moodle sistema odaberite "Osnovne studije – klasične", zatim "Druga godina",
- "Operativni sistemi 1".
- Sistem će vas pitati za lozinku kursa. Unesite lozinku koju ćete dobiti na času od predmetnih
- saradnika.
- Na Moodle-u, u okviru sekcije "Operativni sistemi 1" se nalaze:
- • predavanja (prezentacije)
- • vežbe
- • dodatna dokumentacija (knjige koje delimo besplatno)
- • B. Đorđević, D. Pleskonjić, N. Maček: "Operativni sistemi UNIX и LINUX"
- • B. Đorđević, M. Carić, D. Pleskonjić, N. Maček: "GNU/Linux sistemsko
- programiranje"
- 6
- Uvod
- 4. Kreiranje virtuelnih mašina
- Vežbe radite na virtuelnim mašinama. Virtuelne mašine su gostujući operativni sistemi koji se
- izvršavaju na hypervisor-u koji simulira hardver. Vama su date administrativne privilegije za
- gostujući operativni sistem!
- Virtuelnu mašinu za potrebe kursa Operativni sistemi 1 kreirate na sledeći način:
- • Pokrenite Oracle VM VirtualBox pritiskom na odgovarajuću ikonicu (vidi sliku 2).
- • Otvoriće se "Oracle VM VirtualBox Manager" (slika 8).
- Slika 8. Oracle VM VirtualBox Manager
- • Pritisnite dugme "New". Otvoriće se dijalog "Create Virtual Machine". U dijalogu unesite
- sledeće podatke i pritisnite dugme "Next":
- • Name: OS-1
- • Type: Linux
- • Version: Ubuntu (64 bit)
- • U sledećem dijalogu potrebno je da virtuelnoj mašini dodelite odgovarajuću količinu (u
- našem slučaju 1GB) radne memorije. Upišite u polje 1024 ili pomerite klizač do te
- vrednosti (slika 9). Pritisnite dugme "Next".
- Slika 9. Dodela radne memorije virtuelnoj mašini
- 7
- Uvod
- • U sledećem koraku odabirate virtuelni hard disk koji mašina koristi. Odaberite opciju "Use
- an existing virtual hard drive" i pritisnite ikonicu uokvirenu crvenom bojom na slici 10.
- Slika 10. Odabir virtuelnog hard diska (1)
- • Otvara se dijalog "Please choose a virtual hard drive file". Odaberite datoteku "OS1.vdi"
- iz foldera "home/virtualbox/OS1" (slika 11) i pritisnite dugme "Otvori".
- Slika 11. Odabir virtuelnog hard diska (2)
- • Nakon toga, u dijalogu „Create Virtual Machine“ pritisnite dugme "Create"
- • Virtuelna mašina nije još uvek spremna za rad – potrebno je načiniti još nekoliko
- podešavanja (dodela memorije video adapteru i korišćenje diferencijalnih diskova)
- • U "Oracle VM VirtualBox Manager" prozoru pritisnite dugme "Settings". Otvoriće se
- dijalog "OS-1 – Settings" (slika 12).
- 8
- Uvod
- Slika 12. Podešavanja virtuelne mašine
- • Odaberite karticu "Display" i dodelite video adapteru memoriju tako što ćete "Video
- Memory" postaviti na vrednost 128MB (slika 13).
- Slika 13. Dodela memorije video adapteru
- • U kartici "Storage" odaberite "OS1.VDI" i pritisnite dugme da uklonite disk (slika 14).
- Slika 14. Uklanjanje osnovnog diska
- 9
- Uvod
- • Osnovni disk (nad kojim vi nemate pravo upisa niti izmene podataka) je uklonjen. Sada je
- potrebno da mašini dodelite diferencijalni disk (tzv. "snapshot"), koji predstavlja razliku u
- odnosu na osnovni. Vama je dato pravo upixy nad diferencijalnim diskom.
- • Pritisnite desnim dugmetom miša na "Controller: SATA" i odaberite "Add Hard Disk" ili
- odaberite "Controller: SATA" i pritisnite na zaokruženo dugme (slika 15).
- Slika 15. Dodavanje diferencijalnog diska (1)
- • Otvoriće se dijalog "VirtualBox – Question" (slika 16). U dijalogu pritisnite dugme "Choose
- existing disk".
- Slika 16. Dodavanje diferencijalnog diska (2)
- • U dijalogu "Please choose a virtual hard drive file" odaberite datoteku jednu od
- ponuđenih datoteka tipa "os1_gX.vdi" i pritisnite dugme "Otvori".
- NAPOMENA: DIFERENCIJALNI DISKOVI SU KREIRANI TAKO DA SVAKI STUDENT KORISTI
- SVOJ DISK NA SVOM RAČUNARU. PRE NEGO ŠTO GA ODABERETE, PITAJTE PREDMETNE
- SARADNIKE KOJU DATOTEKU TREBATE DA KORISTITE!
- • U dijalogu "OS-1 – Settings" pritisnite dugme OK.
- • Virtuelna mašina je kreirana i spremna za rad.
- 10
- Uvod
- 5. Upotreba virtuelnih mašina
- Pokrenite virtuelnu mašinu "OS-1" tako što ćete je odabrati u prozoru "Oracle VM VirtualBox
- Manager" i pritisnuti dugme start.
- Pokrenuta virtuelna mašina je prikazana na slici 17.
- Slika 17. Virtuelna mašina na kojoj se izvršava Ubuntu Linux kao gostujući operativni sistem
- Na sistem se prijavite sa korisničkim imenom "korisnik" i lozinkaom "password".
- Terminal u okviru virtuelne mašine pokrećete pritiskom na ikonicu:
- Terminal je, najjednostavnije rečeno "nešto što čeka da vi preko tastature unesete komande
- nakon kojih će on eventualno prikazati rezultat izvršenja istih". Prikazan je na slici 18.
- Slika 18. Terminal
- 11
- Uvod
- Virtuelnu mašinu ne gasite NASILNO, zatvaranjem VirtualBox Managera!
- Virtuelna mašina se gasi odabirom opcije "isključi" (slika 20a) i pritiskom na odgovarajuće
- dugme (slika 20b).
- (a) (b)
- Slika 20. Gašenje virtuelne mašine
- 12
- Uvod
- 6. Upoznavanje sa komandnom linijom
- Pokrenite virtuelnu mašinu i prijavite se kao "korisnik" sa lozinkom "password".
- Pokrenite terminal.
- • Pokušajte da zadate redom sledeće komande u konzoli:
- pwd
- ls -l /etc
- mount
- cat /etc/passwd
- uname -a
- Komandni interpreter je proces koji obavlja sledeće funkcije u cilju obezbeđivanja interfejsa
- između korisnika i sistema: interpretaciju komandne linije, pokretanje programa, redirekciju
- ulaza i izlaza, povezivanje komandi u pipeline, zamenu imena datoteka.
- Tekst unet u shell prompt naziva se komandna linija (command line), čiji je opšti oblik:
- $ command [opcije] [argumenti]
- gde je:
- • $ (ili #) odzivnik (prompt) i prikazuje se svaki put kad je shell spreman da od korisnika
- prihvati novu komandu. KADA ZADAJETE KOMANDE OVO NE UNOSITE!
- • command može biti interna komanda (ugrađena u shell) ili eksterna (realizovana kao
- poseban program koji se nalazi u sistemskoj putanji).
- • opcije i argumenti su parametri koje shell prenosi komandi, pri čemu su argumenti
- najčešće obavezni i predstavljaju ime neke datoteke, direktorijuma, korisnika ili, na
- primer, identifikator procesa.
- Ime komande, opcije i argumenti su osetljivi na velika i mala slova i razdvajaju se razmakom.
- Primeri kombinovanja opcija i argumenata su:
- • free - samo komanda
- • df /dev/hda1 - komanda (fd) i argument (/dev/hda1)
- • cp 1.txt 2.txt - komanda (cp) i dva argumenta (1.txt i 2.txt)
- • date –u - komanda (date) i opcija (-u)
- • ls –l /etc - komanda (ls), opcija (-l) i argument (/etc)
- Nakon interpretacije komandne linije shell inicira izvršenje zadate komande. Ukoliko komanda
- nije interna (ugrađena u shell, poput komande cd) shell traži izvršnu datoteku koja odgovara
- imenu komande u direktorijumima navedenim u sistemskoj putanji (promenljiva $PATH).
- Nakon toga shell pokreće program i prosleđuje mu argumente i opcije navedene u komandnoj
- 13
- Uvod
- liniji.
- Ukoliko se izvršna datoteka nalazi u tekućem direktorijumu ili u nekom direktorijumu koji nije u
- sistemskoj putanji, ime komande se mora zadati sa putanjom:
- • ./myscript - pokretanje programa iz tekućeg direktorijuma
- • /usr/sbin/useradd - pokretanje programa iz /usr/sbin
- Više UNIX komandi mogu se navesti u istoj komandnoj liniji ukoliko su razdvojene znakom tačkazarez.
- • clear ; date - dve komande koje se izvršavaju jedna za drugom
- 6.1. Izmena pogrešno unete komande i navigacija po history-ju komandi
- Pokušajte da zadate redom sledeće komande u konzoli:
- • pwd
- • ls -l /etc
- • mount
- • cat /etc/passwd
- • uname -a
- Kursorskim strelicama na gore i dole krećete se kroz prethodno zadate komande.
- Pokušajte komandu cat /etc/passwd da izmenite u cat /etc/hosts a da pri tome ne kucate
- sve ponovo. Koristite kursore.
- 6.2. Datoteke
- U objekte UNIX sistema datoteka spadaju:
- • regularne datoteke,
- • direktorijumi (mogu se posmatrati kao specijalne datoteke koje sadrže objekte sistema
- datoteka, uključujući i poddirektorijume),
- • hard linkovi (alternativna imena datoteka) i simbolički linkovi (prečice)
- • blok i karakter specijalne datoteke (opisuju uređaje, odnosno upravljačke programe
- (drajvere) u kernelu).
- • imenovani pipeline (mehanizam za komunikaciju između procesa).
- Što se tiče imena datoteka,
- • dozvoljeni karakteri su: sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9), crta (-),
- 14
- Uvod
- underscore (_) i tačka (.).
- • Opcije UNIX komandi počinju jednom (-) ili dvema crtama (--), tako da imena datoteka ne
- treba počinjati tim karakterima.
- • Ukoliko ime objekta počinje tačkom (.), on se smatra skrivenim i može se videti pomoću
- komande ls samo ako je zadata s parametrom -a (all).
- • Zabranjeni karakteri su: ! “ ‘ ` ; : / \ $ < > ( ) [ ] { } ~
- Ukoliko se umesto imena direktorijuma u apsolutnoj putanji navede ~ korisnik će biti
- preusmeren na home direktorijum.
- Na primer, komanda less ~/myfile.txt prikazaće sadržaj datoteke myfile.txt koja se nalazi
- u home direktorijumu korisnika koji je komandu zadao, bez obzira na tekući direktorijum.
- 6.3. Kompletiranje imena datoteka
- Bourne-again shell sadrži mogućnost za kompletiranje imena datoteka. Korisnik može da unese
- samo nekoliko prvih karaktera imena datoteke, a zatim da pritisne karakter <Tab> kojim se
- naznačava shellu da završi ime datoteke. Na primer:
- • ls -l /etc/pas<Tab>
- • ls -l /etc/passwd
- Ukoliko shell u tekućem direktorijumu pronađe više od jedne datoteke čije ime počinje tim
- karakterima, korisnik će morati da unese još nekoliko karaktera u imenu datoteke, a zatim da
- ponovo pritisne taster <Tab>.
- 6.4. Navigacija po stablu
- Apsolutna putanja tekućeg direktorijuma može se prikazati pomoću komande pwd (print working
- directory):
- pwd
- /home/jsmith/mydoc
- Tekući direktorijum se menja komandom cd (change directory). Sintaksa komande je krajnje
- jednostavna:
- cd dir
- Argument dir je apsolutna ili relativna putanja direktorijuma na koji korisnik želi da se
- pozicionira. Na primer, ako se korisnik nalazi u direktorijumu /tmp/backup i zada komandu
- cd ../data, biće prebačen u direktorijum /tmp/data. Korisnik koji zada komandu bez argumenta
- 15
- Uvod
- dir biće premešten u home direktorijum.
- Primeri upotrebe komande cd su sledeći:
- • cd ~/data - prelazak na poddirektorijum data u home direktorijumu
- • cd .. - prelazak na roditeljski direktorijun
- • cd backup - prelazak na dir.backup u tekućem direktorijumu
- • cd / - prelazak na početak aktivnog stabla, tj. root direktorijum
- • cd /backup - prelazak na direktorijum backup u root direktorijumu
- 6.5. Listanje sadržaja direktorijuma
- Korisnik može na ekranu pomoću komande ls (list) prikazati sadržaj bilo kog direktorijuma
- aktivnog UNIX stabla. Sintaksa komande ls je:
- • ls [options] [dir][filespec]
- Komanda ls prikazaće na ekranu spisak objekata direktorijuma dir definisanih argumentom
- filespec. Argument filespec formira se pomoću džoker karaktera i nije obavezan. Ukoliko se
- ne navede, podrazumevaju se svi objekti u direktorijumu. Argument dir takođe nije obavezan, i
- ako se ne navede prikazuje se sadržaj tekućeg direktorijuma. Ukoliko se ne navedu dodatne
- opcije ls prikazuje samo imena objekata sortiranih u abecednom redu. Imena skrivenih objekata
- (objekti čije ime počinje tačkom) se ne prikazuju, a imena rezervnih kopija datoteka (datoteke
- čije se ime završava znakom ~) se prikazuju. Opcije:
- • -a - prikazuju se i imena skrivenih objekata
- • -d - prikazuje se kontekst direktorijuma umesto sadržaja
- • -i - prikazuje se i-node broj datoteke
- • -R - rekurzivno se prikazuje sadržaj svih poddirektorijuma
- • -h - veličine datoteka se prikazuju u čitljivom formatu (1K, 234M, 2G)
- • -l - prikazuju se i informacije upisane u i-node (prava pristupa, vlasnik, ...)
- • -1 - prikazuje samo imena objekata (jedno ime u jednoj liniji)
- Isprobajte sledeće primere i pokušajte da date objašnjenja:
- • ls -a
- • ls -l
- • ls -R /home
- • ls -dl /etc
- • ls -l /etc
- 16
- Uvod
- 6.6. Pregledanje sadržaja tekstualnih datoteka
- Sadržaj tekstualne datoteke najlakše se može pregledati pomoću programa cat i less. U
- zavisnosti od veličine datoteke korisnik će odrediti koji će program koristiti - ukoliko je datoteka
- kraća i može se prikazati na jednom ekranu, može se koristiti cat. U suprotnom, koristi se
- program less koji prikazuje datoteku sa pauzom nakon svakog punog ekrana.
- Na primer:
- cat /etc/resolv.conf
- nameserver 127.0.1.1
- search vets.edu.yu
- Komanda less pravi pauzu posle svakog ekrana i navigaciju po datoteci unapred i unazad.
- Nakon pokretanja programa less prikazuje prvi ekran sadržaja datoteke, a zatim se koriste
- interaktivne komande za navigaciju po sadržaju datoteke i napuštanje programa:
- • h ili H - prikazuje pomoć pri korišćenju interaktivnih komandi
- • <Space> - prikazuje sledeći ekran sadržaja datoteke
- • <DOWN> - prikazuje sledeću liniju teksta
- • <UP> - prikazuje prethodnu liniju teksta
- • <RIGHT> - horizontalno pomeranje ekrana udesno (ukoliko se ne koristi word wrap)
- • <LEFT> - horizontalno pomeranje ekrana ulevo (ukoliko se ne koristi word wrap)
- • q ili Q - napuštanje programa less.
- Primer:
- less /etc/passwd
- 17
- Uvod
- 7. Objašnjenje mehanizma "sudo"
- Na Linux-u, kao i na Windows-u, postoje dve osnovne vrste korisničkih naloga – administratorski
- i obični (korisnički). Obični korisnici imaju mnoge restrikcije – ograničen pristup podešavanjima,
- aplikacijama i objetkima fajl sistema, dok je administratoru dozvoljeno sve – na primer
- dodavanje (instalacija) aplikacija, pravljenje i brisanje naloga, pristup svim datotekama fajl
- sistema i slično.
- Na Linuxu se podrazumevani administratorski nalog zove root. Root korisnik može da uradi šta
- god poželi na sistemu, pa i da izvrši neke destruktivne operacije – na primer da obriše sistemske
- fajlove i time onemogući rad sistema.
- Na Ubuntu distribuciji se pri instalaciji kreira root nalog (na Windows-u je to nalog
- Administrator). Ovaj nalog postoji sa svim svojim pravima, ali je ONEMOGUĆEN – nije mu
- dodeljena lozinka – pa samim tim Linux ne dopušta da se pristupi sa ovim imenom. Ovo je
- možda neobično nekome ko je koristio Windows ili druge distribucije Linuxa. Kako je
- administracija moguća, ako je sistemu nemoguće pristupiti kao administrator – root? Filozofija je
- takva da se za administraciju sistema ne koristi neposredno root nalog, već da običan korisnik,
- kome su dodeljena prava za administrativne akcije, pomoću komande sudo (Super User DO,
- Switch User DO) preuzima funkciju administratora. Običan korisnik pokreće program koji zahteva
- root privilegije tako što zadaje komandu sudo i ime traženog programa.
- Zatim se od njega očekuje da unese lozinku, ali korisnik ne unosi root lozinku (ona i ne postoji),
- već SVOJU šifru za pristup sistemu (OBRATITE PAŽNJU - OVO JE BITAN DETALJ!)
- Korišćenjem sudo programa se postiže fleksibilnost u određivanju prava korisnika. Nije
- neophodno otkriti root lozinku korisniku kome treba da dodelimo ulogu administratora. Takođe je
- moguće privremeno ili stalno dodeljivanje određenih prava korisnicima jednostavnim
- dodavanjem i brisanjem iz sudoers konfiguracione datoteke. U kasnijim vežbama će biti
- detaljnije objašnjeno korišćenje programa sudo.
- 18
- Visoka škola elektrotehnike i računarstva
- strukovnih studija
- Beograd
- OPERATIVNI SISTEMI 1
- VEŽBA 2
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- Sadržaj:
- 1. Podsetnik sa prethodne vežbe (komandni interpreter bash)
- 2. Navigacija po stablu i listanje sadržaja direktorijuma
- 3. Datoteke i tipovi datoteka
- 4. Upotreba džokera
- 5. Redirekcija ulaza i izlaza i povezivanje komandi u pipeline
- 6. Rad sa tekstualnim datotekama
- Nemanja Maček
- Borislav Đorđević
- Borislav Krneta
- Beograd, 2015
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 1. Podsetnik sa prethodne vežbe (komandni interpreter bash)
- Interfejs komandne linije (“Command Line Interface, CLI”), predstavlja tekstualni
- interfejs ka operativnom sistemu računara. U ovakvom načinu interakcije između
- korisnika i operativnog sistema, korisnik unosi komandu, koja se potom interpretira i
- izvršava na operativnom sistemu.
- CLI radno okruženje je na UNIX-olikim operativnim sistemima realizovano kao program
- poznat pod imenom “Terminal”. Ova aplikacija je zadužena da prihvata korisnikovu
- komandu, u obliku niza karaktera, i prosleđuje je ka komandnom interpreteru (“shell”).
- Komandni iterpreter prevodi ono što je korisnik kucao u instrukcije koje mogu biti
- izvršene na računaru od strane operativnog sistema. Rezultat izvršenja komande se
- takođe prikazuje u terminalu, bilo da se radi o rezultatu uspešno izvršene komande ili
- je u pitanju poruka o grešci prilikom izvršenja komande.
- Na osnovu prethodno navedenog, možemo zaključiti da je komandni interpreter proces
- koji obezbeđuje interfejs između korisnika i operativnog sistema. Najčešće korišten
- komandni iterpreter na Linux operativnom sistemu je “bash”.
- Tekst unet u “shell” prompt naziva se komandna linija (command line), čiji je opšti
- oblik:
- $ command [opcije] [argumenti]
- gde je:
- • $ (ili #) odzivnik (prompt) i prikazuje se svaki put kad je shell spreman da od
- korisnika prihvati novu komandu. KADA ZADAJETE KOMANDE OVO NE UNOSITE!
- • command može biti interna komanda (ugrađena u shell) ili eksterna (realizovana
- kao poseban program koji se nalazi u sistemskoj putanji).
- • opcije i argumenti su parametri koje shell prenosi komandi, pri čemu su
- argumenti najčešće obavezni i predstavljaju npr. ime datoteke, korisnika ili
- identifikator procesa.
- Ime komande, opcije i argumenti su osetljivi na velika i mala slova i razdvajaju se
- razmakom.
- Primeri kombinovanja opcija i argumenata su:
- free - samo komanda
- 1
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- df /dev/hda1 - komanda (fd) i argument (/dev/hda1)
- cp 1.txt 2.txt - komanda (cp) i dva argumenta (1.txt i 2.txt)
- date –u - komanda (date) i opcija (-u)
- ls –l /etc - komanda (ls), opcija (-l) i argument (/etc)
- Nakon interpretacije komandne linije shell inicira izvršenje zadate komande. Ukoliko
- komanda nije interna (ugrađena u shell, poput komande cd) shell traži izvršnu
- datoteku koja odgovara imenu komande u direktorijumima navedenim u sistemskoj
- putanji (promenljiva $PATH). Nakon toga shell pokreće program i prosleđuje mu
- argumente i opcije navedene u komandnoj liniji.
- Ukoliko se izvršna datoteka nalazi u tekućem direktorijumu ili u nekom direktorijumu
- koji nije u sistemskoj putanji, ime komande se mora zadati sa putanjom:
- ./myscript - pokretanje programa iz tekućeg direktorijuma
- /usr/sbin/useradd - pokretanje programa iz /usr/sbin
- Više UNIX komandi mogu se navesti u istoj komandnoj liniji ukoliko su razdvojene
- znakom
- tačka-zarez.
- clear ; date - dve komande koje se izvršavaju jedna za drugom
- 1.1. Izmena pogrešno unete komande i navigacija po istoriji komandi
- Strelicama na gore i dole krećete se kroz prethodno zadate komande.
- Strelicama levo i desno krećete se kroz komandu koju pišete.
- Aktivnost 1.
- 1. Namerno otkucajte neku komandu pogrešno, na primer lls umesto ls:
- lls -l /etx
- Vratite komandu iz bafera (strelica na gore) pa je ispravite i izvršite:
- ls -l /etc
- 2. Zadajte redom sledeće komande u konzoli:
- cat /etc/passwd
- ls -l /etc
- pwd
- Komandu "cat /etc/passwd" izmenite u "cat /etc/hosts" – ne kucajte sve ponovo,
- koristite kursore!
- 2
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 1.2. Kompletiranje komandi i imena datoteka
- Bourne-again shell (bash) sadrži mogućnost za kompletiranje komandi ili imena
- datoteka. Korisnik može da unese samo nekoliko prvih karaktera imena datoteke, a
- zatim da pritisne karakter <Tab> kojim se naznačava komandnom interpreteru da
- završi ime datoteke. Ukoliko shell u tekućem direktorijumu pronađe više od jedne
- datoteke čije ime počinje tim karakterima, korisnik će morati da unese još nekoliko
- karaktera u imenu datoteke, a zatim da ponovo pritisne taster <Tab>.
- Aktivnost 2.
- 1. Otkucajte u komandnom interpreteru:
- cat /etc/pas
- Pritisnite taster <tab> i interpreter će kompletirati ime datoteke /etc/passwd
- 2. Sta znači ako tab ne radi? Ili se ime datoteke može dopuniti na više načina (ima više
- opcija), ili nema nijedne. Na primer, otkucajte:
- cat /etc/pa
- i pritisnite taster <tab>
- 1.3. Traženje pomoći za komande
- Komandna linija je radno okruženje koje korisnicima omogućava obavljanje poslova na
- veoma efikasan način, korišćenjem raznih komandi i njihovih opcija. Poznavanje svih
- komandi i njihovih opcija predstavlja veliki problem za korisnike koji tek počinju koristiti
- komandnu liniju. Čak i iskusniji korisnici Linux operativnog sistema ne pamte, niti ima
- smisla pamtiti, sve komande i sve opcije komandi. Jedna od osnovnih veština koju
- korisnik Linux operativnog sistema treba da nauči je kako da potraži pomoć za
- komande koje bi želeo da koristi.
- Osnovni način za dobijanje pomoći vezane za komande je pregled “man” stranice za
- datu komandu (“man” je skraćenica za “manual” (uputstvo)). Svaka komanda na Linux
- operativnom sistemu je opisana u odgovarajućoj “man” stranici. Pored opisa same
- komande i opcija koje su dostupne za istu, u velikom broju slučajeva je naveden i
- primer korišćenja date komande.
- Uputstvo za željenu komandu se može dobiti ukoliko u komandnoj liniji unesemo
- komandu “man” a argument je ime komande čije uputstvo za korišćenje želimo da
- 3
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- vidimo. Ukoliko, recimo, želimo da vidimo “man” stranicu za komandu “ls” u
- komandnoj liniji bi smo uneli sledeće: “man ls”. Izgled uputstva za komandu ls je
- prikazan na sledećoj slici:
- Na većini Linux operativnih sistema za prikaz “man” stranica se koristi pregledač koji
- se zove “less”. Za navigaciju kroz uputstvo u okviru pregledača, koristite strelice
- naviše i naniže. Ukoliko želite da izađete iz pregledača “man” stranice pritisnite taster
- Q i dobićete ponovo odzivni znak. Kasnije u vežbi će biti pomenut pregledač “less”.
- Ovo nije jedini način da dobijete pomoć vezanu za korišćenje komandi i programa na
- Linux operativnom sistemu. Za pomoć vezanu za komande možete koristiti i “info”
- stranice za date komande a dodatnu pomoć za pojedine programe je moguće pronaći
- u direktorijumima /usr/share/doc ili /usr/doc u zavisnosti od distribucije Linux
- operativnog sistema.
- 4
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 2. Navigacija po stablu i listanje sadržaja direktorijuma
- Apsolutna putanja tekućeg direktorijuma može se prikazati pomoću komande pwd
- (print working directory), na primer:
- pwd
- /home/nmacek/mydoc
- Tekući direktorijum se menja komandom cd (change directory). Sintaksa komande je:
- cd dir
- Argument dir je apsolutna ili relativna putanja direktorijuma na koji korisnik želi da se
- pozicionira. Na primer, ako se korisnik nalazi u direktorijumu /tmp/backup i zada
- komandu
- cd ../data, biće prebačen u direktorijum /tmp/data. Korisnik koji zada komandu bez
- argumenta dir biće premešten u home direktorijum.
- Primeri upotrebe komande cd su sledeći:
- cd - prelazak na lični direktorijum
- cd ~/data - prelazak na poddirektorijum data u ličnom direktorijumu
- cd .. - prelazak na roditeljski direktorijun
- cd backup - prelazak na direktorijum backup u tekućem direktorijumu
- cd / - prelazak na početak aktivnog stabla, tj. root direktorijum
- cd /backup - prelazak na direktorijum backup u root direktorijumu
- Aktivnost 3.
- 1. Pozicionirajte se na vaš lični (home) direktorijum i proverite gde ste pozicionirani:
- cd
- pwd
- 2. Pozicionirajte se na roditeljski direktorijum i proverite gde ste pozicionirani:
- cd ..
- pwd
- 3. Pozicionirajte se na direktorijum /etc i proverite gde ste pozicionirani:
- cd /etc
- pwd
- 4. Pozicionirajte se na direktorijum /usr upotrebom relativne putanje:
- cd ../usr
- pwd
- 5
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 2.1. Listanje sadžaja direktorijuma
- Korisnik može na ekranu pomoću komande ls (list) prikazati sadržaj bilo kog
- direktorijuma aktivnog UNIX stabla. Sintaksa komande ls je:
- ls [options] [dir][filespec]
- Komanda ls prikazaće na ekranu spisak objekata direktorijuma dir definisanih
- argumentom filespec. Argument filespec formira se pomoću džoker karaktera i nije
- obavezan. Ukoliko se ne navede, podrazumevaju se svi objekti u direktorijumu.
- Argument dir takođe nije obavezan, i ako se ne navede prikazuje se sadržaj tekućeg
- direktorijuma. Ukoliko se ne navedu dodatne opcije ls prikazuje samo imena objekata
- sortiranih u abecednom redu. Imena skrivenih objekata (objekti čije ime počinje
- tačkom) se ne prikazuju, a imena rezervnih kopija datoteka (datoteke čije se ime
- završava znakom ~) se prikazuju. Opcije:
- • -a - prikazuju se i imena skrivenih objekata
- • -d - prikazuje se kontekst direktorijuma umesto sadržaja
- • -i - prikazuje se i-node broj datoteke
- • -R - rekurzivno se prikazuje sadržaj svih poddirektorijuma
- • -h - veličine datoteka se prikazuju u čitljivom formatu (1K, 234M, 2G)
- • -l - prikazuju se i informacije upisane u i-node (prava pristupa,
- vlasnik, ...)
- • -1 - prikazuje samo imena objekata (jedno ime u jednoj liniji)
- Primeri:
- 1. prikazivanje imena svih (i skrivenih) datoteka tekućeg direktorijuma
- ls -a
- . .alias .bash_profile .cshrc d1 f2
- .. .bash_history .bashrc .gnupg f1 l1
- 2. "long listing"
- ls -l
- drwxr-xr-x 2 nmacek nmacek 4096 Sep 21 d1
- -rw-r--r-- 1 nmacek nmacek 315 Sep 21 f1
- -rw-r--r-- 1 nmacek nmacek 4125 Sep 21 f2
- lrwxrwxrwx 1 nmacek nmacek 2 Sep 21 l1 -> f1
- 3. prikazivanje konteksta direktorijuma /etc
- ls -ld /etc
- 6
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- drwxr-xr-x 53 root root 3072 May 21 09:58 /etc
- Aktivnost 4.
- 1. Šta prikazuju sledeće dve komande?
- ls /etc
- ls -l /etc
- 2. Upotreba opcije -a koja prikazuje skrivene datoteke (datoteke čije ime počinje sa
- tačkom).
- Pređite na lični (home) direktorijum:
- cd
- izlistajte sadržaj direktorijuma komandom:
- ls -l
- izlistajte sadržaj direktorijuma i prikažite i skrivene datoteke:
- ls -al
- 3. Upotreba opcije -d kojom se prikazuje tzv. kontekst direktorijuma, tj. informacije o
- direktorijumu (ko je vlasnik, kojoj je grupi dodeljen, prava pristupa, itd) umesto
- sadržaja direktorijuma.
- Izlistajte sadržaj direktorijuma:
- ls -l /tmp
- prikažite kontekst:
- ls -ld /tmp
- 4. Prikažite sadžaj direktorijuma "po dubini" (recursively)
- ls -R /usr
- 3. Datoteke i tipovi datoteka
- U objekte Linux sistema datoteka spadaju:
- • regularne datoteke,
- • direktorijumi (mogu se posmatrati kao specijalne datoteke koje sadrže objekte
- sistema
- • datoteka, uključujući i poddirektorijume),
- • hard linkovi (alternativna imena datoteka) i simbolički linkovi (prečice)
- • blok i karakter specijalne datoteke (opisuju uređaje, odnosno drajvere u
- kernelu).
- 7
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 3.1. Tipovi datoteka
- Linux u komandnoj liniji nema pojam ekstenzije, već samo imena objekta. Datoteke
- nmap.tar.gz i sample.mpg posmatraju se kao regularne datoteke, bez obzira na sadržaj,
- pri čemu se tip datoteke može odrediti pomoću komande file.
- Pojam ekstenzije se uvodi pod grafičkim radnim okruženjem, u smislu asociranja
- datoteka sa programom na osnovu ekstenzija (npr. datoteka sa ekstenzijom doc biće
- otvorena u Libre Office Writeru, a ne u C kompajleru). Direktorijumi najčešće nemaju
- ekstenzije, iako ne postoji neko pravilo kojim bi se to eksplicitno zabranilo.
- Na UNIX sistemima postoji nekoliko osnovnih tipova regularnih datoteka:
- • tekstualne datoteke - ASCII (neformatiran tekst), English text (tekst sa
- interpunkcijskim karakterima) i izvršni shell programi
- • izvršne (binarne) datoteke
- • datoteke u koje su smešteni podaci (na primer, PDF ili Libre Office Writer
- dokument)
- Prilikom određivanja tipa datoteke komanda file izvršava sledeće testove: test
- specijalnih datoteka (filesystem test), test magičnih brojeva (magic number test) i
- jezički test (language test).
- Izlaz komande file može biti na primer:
- • tekstualna datoteka
- /etc/hosts: ASCII English text
- • izvršna binarna datoteka, za 32 bitne Linux sisteme
- /bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
- dynamically linked (uses shared libs), stripped
- • blok uređaj
- /dev/hda: block special (3/0)
- • simbolički link
- /sbin/rmt: symbolic link to /usr/sbin/rmt
- • direktorijum
- /etc: directory
- Aktivnost 5.
- Odredite tip datoteka /etc/hosts, /bin/cp, /dev/sda.
- 8
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- Komandu zadajete sa administrativnim privilegijama. Ukoliko sistem zatraži lozinku,
- unosite vašu lozinku (dakle, "password").
- 1. Datoteka /etc/hosts:
- sudo file /etc/hosts
- 2. Datoteka /bin/cp:
- sudo file /bin/cp
- 3. Datoteka /dev/sda:
- sudo file /dev/sda
- Pitanje 1.
- Korisnik root zadaje komandu file na sledeći način: file <ARGUMENT>
- Komanda vraća rezultat:
- <ARGUMENT>: ASCII English text
- Šta je od ponuđenih odgovora mogući argument komande (označen kao <ARGUMENT>)?
- a. /etc/hosts
- b. /bin/cp
- c. /dev/hda
- d. /dev/lp0
- 3.2. Imena datoteka
- Što se tiče imena datoteka:
- • Dozvoljeni karakteri su sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9),
- crta (-), underscore (_) i tačka (.)
- • Zabranjeni karakteri su: ! “ ‘ ` ; : / \ $ < > ( ) [ ] { } ~
- • Opcije UNIX komandi počinju jednom (-) ili dvema crtama (--), tako da imena
- datoteka ne treba počinjati tim karakterima
- • Ukoliko ime objekta počinje tačkom (.), on se smatra skrivenim i može se videti
- pomoću komande ls samo ako je zadata s parametrom -a (all)
- Ukoliko se umesto imena direktorijuma u apsolutnoj putanji navede ~ korisnik će biti
- preusmeren na home direktorijum. Na primer, komanda less ~/myfile.txt prikazaće
- sadržaj datoteke myfile.txt koja se nalazi u home direktorijumu korisnika koji je
- komandu zadao.
- Napomena: u komandnoj liniji ekstenzije ne postoje, već samo imena objekta!
- 9
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 4. Upotreba džokera
- Imena datoteka mogu se zameniti džoker (joker) karakterima *, ? i []. Argument
- komande koji sadrži džoker zamenjuje se odgovarajućom listom datoteka shodno
- pravilima zamene. Komandni interpreter izvršava zamenu pre izvršavanja same
- komande, odnosno pre pokretanja programa.
- 1. Karakter * menja bilo koji niz znakova proizvoljne dužine. Na primer, izlaz sledeće
- komande:
- ls -d /var/s*
- mogu biti dva direktorijuma smeštena u direktorijumu /var:
- /var/spool /var/stat
- Imena spool i stat odgovaraju pravilu zamene: počinju slovom "s" nakon koga se
- nalazi proizvoljan broj karaktera.
- 2. Karakter ? menja tačno jedan znak (bilo koji). Na primer, izlaz sledeće komande:
- ls -d /?bin
- je direktorijum sbin koji se nalazi u root direktorijumu:
- /sbin
- Drugim rečima, izlaz je tačno jedan karakter (bilo koji) nakon koga se nalazi niz "bin".
- 3. Opseg [poc-kraj] menja tačno jedan znak koji pripada tom opsegu. Opseg se NE
- SME zadati u opadajućem redu. Na primer, izlaz sledeće komande:
- ls -d /etc/[a-d][a-d]*
- mogu biti sledeći direktorijumi:
- /etc/adduser.conf /etc/bash.bashrc /etc/bash_completion.d
- /etc/adjtime /etc/bash_completion /etc/calendar
- U ovom slučaju imena moraju da zadovolje sledeći kriterijum:
- • prvi i drugi karakter su biti bilo koje slovo iz opsega [a-d] (što znači "a", "b", "c"
- ili "d").
- • nakon drugog karaktera nalazi se bilo koji niz karaktera proizvoljne dužine.
- 10
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- Aktivnost 6.
- Pređite na direktorijum /bin sledećom komandom:
- cd /bin
- Prikažite sve datoteke čije ime počinje na slovo "a":
- ls -l a*
- Prikažite sve datoteke čije ime počinje slovima "ch":
- ls -l ch*
- Šta prikazuje sledeća komanda?
- ls -l ??mod
- Vratite se na home direktorijum komandom: cd
- Pitanje 2.
- 1. Korisnik zadaje jednu komandu. Kao rezultat izvršenja u terminalu se prikazuje:
- /etc/adduser.conf /etc/bash.bashrc /etc/bash_completion.d
- /etc/adjtime /etc/bash_completion /etc/calendar
- Koju je komandu korisnik zadao?
- a. ls -d /etc/[a-d][a-d]*
- b. ls -d /etc/[a-d][a-d]?
- c. ls -d /etc/[abcd][Abcd]*
- d. ls -d /etc/[abcd][abcd]?
- Pitanje 3.
- Korisnik zadaje jednu komandu. Kao rezultat izvršenja u terminalu se prikazuje:
- chmod lsmod
- Komanda ne prikazuje datoteke modprobe i chown iz tekućeg direktorijuma. Koju je
- komandu korisnik zadao?
- a. ls [a, ..x][a, ..x]*
- b. ls *mod*
- c. ls ??mod
- d. ls [c-l][h-s]*
- 11
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- 5. Redirekcija ulaza i izlaza i povezivanje komandi u pipeline
- UNIX komande primaju podatke sa standardnog ulaza (tastatura) a rezultate izvršenja
- šalju na standardni izlaz (najčešće ekran). UNIX omogućava da se ulaz i izlaz komande
- preusmere:
- 1. Ulaz komande preusmerava se pomoću znaka "<" (manje od). Na primer, moguće je
- standardni ulaz sa tastature zameniti nekom tekstualnom datotekom:
- wc -l < /tmp/jsmith.dat
- 2. Za redirekciju izlaza se koristi znak ">" (veće od). Ukoliko se redirekcija vrši u
- postojeću datoteku datoteka se briše, a zatim se kreira nova u koju se smešta rezultat
- izvršenja komande.
- ls -l /home/jsmith > myfile - redirekcija izlaza u novu datoteku
- 3. Ukoliko korisnik želi da se rezultat izvršenja doda na postojeću datoteku bez brisanja
- njenog sadržaja, za redirekciju izlaza koristi se znak ">>".
- ls -l /tmp/jsmith >> myfile - redirekcija izlaza u postojeću datoteku
- Aktivnost 7.
- 1. Pozicionirajte se na lični direktorijum.
- cd
- 2. Čemu služi sledeća komanda?
- ls -l /etc
- 3. Preusmerite izlaz sledeće komande u datoteku etclist:
- ls -l /etc > etclist
- 4. Pogledajte sadržaj datoteke etclist programom za pregledanje tekstualnih datoteka
- cat.
- cat etclist
- 5. Izlaz komande mount preusmerite u datoteku mountlist:
- mount > mountlist
- 6. Pogledajte sadržaj datoteke mountlist programom za pregledanje tekstualnih
- datoteka cat.
- cat mountlist
- 7. U datoteku mountlist koju ste kreirali dopišite sadržaj home direktorijuma.
- ls -al ~ >> mountlist
- 8. Ponovo pogledajte sadržaj datoteke mountlist i učite izmene.
- 12
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- cat mountlist
- 9. Obrišite datoteke koje ste kreirali:
- rm etclist mountlist
- Pitanje 4.
- Sadržaj datoteke 1.txt je:
- I love black metal.
- Sadržaj datoteke 2.txt je:
- I should listen to more black metal.
- Korisnik zadaje određenu komandu i menja sadržaj datoteke 2.txt u:
- I love black metal.
- I should listen to more black metal.
- Koju je komandu korisnik zadao:
- a. cat 1.txt > 2.txt
- b. cat 1.txt >> 2.txt
- c. cat 2.txt >> 1.txt
- d. cat 2.txt > 1.txt
- Pitanje 5.
- Korisnik zadaje sledeće komande?
- ls -l /etc > 1.txt
- ls -l /var >> 1.txt
- ls -l /usr > 1.txt
- U datoteci 1.txt nalazi se sadržaj direktorijuma:
- a. /etc
- b. /etc i /var
- c. /etc, /var i /usr
- d. /usr
- 5.2. Povezivanje komandi u pipeline
- Pipeline funkcioniše na sledeći način: standardni izlaz komande sa leve strane znaka
- pipe (cev, karakter "|") postaje standardni ulaz komande sa desne strane znaka.
- Na primer, pretpostavimo da korisnik želi da zna koliko datoteka ima u direktorijumu
- /etc.
- 13
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- • Korisnik može izlistati sadržaj direktorijuma u takozvanom long-listing formatu i
- izvršiti redirekciju izlaza u privremenu datoteku /tmp/files_in_etc.
- ls -l /etc > /tmp/files_in_etc
- • Dalje, korisnik može prebrojati broj linija u privremenoj datoteci pomoću
- komande wc (word count), pri čemu opcija -l znači da se broje linije datoteke
- wc -l < /tmp/files_in_etc
- 145
- Prva komanda koristi datoteku /tmp/files_in_etc kao standardni izlaz, a druga kao
- standardni ulaz, što znači da se prebrojavanje datoteka u direktorijumu /etc može
- realizovati pomoću pipeline sprege komandi ls i wc:
- ls -l /etc | wc -l
- 145
- U pipeline se može povezati veći broj komandi. Sledeći primer ilustruje pipeline koji
- prebrojava sve korisnike koji su prijavljeni na sistem a ime im počinje slovom "a" i
- prikazuje ih sortirane po abecednom redu.
- finger | grep a* | wc -l | sort
- Preusmeravanje se koristi kad se koristi podatak iz datoteke koja će se i dalje koristiti.
- Aktivnost 8.
- 1. Potrebno je prebrojati sve datoteke u osnovnoj grani direktorijuma /etc. Jedan od
- načina na koji se to može učiniti je sledeći:
- • preusmerite izlaz komande koja ispisuje jednu datoteku direktorijuma /etc u
- svakoj liniji na ekranu u neku datoteku:
- ls -l /etc > etc1.txt
- • prebrojite linije datoteke – koristi se komanda wc (word count), opcija -l znači da
- se broje linije datoteke:
- wc -l etc1.txt
- Drugi način je da iskoristite pipeline te dve komande:
- ls -l /etc | wc -l
- 2. Drugi primer gde je pipeline neophodan je bilo koja Linix komanda koja proizvodi
- veliki izlaz. Komanda koja prikazuje sadržaj etc direktorijuma (ls -l /etc) je dobar
- primer. Izlaz takve komande možete videti stranu po stranu ako uradite sledeće stvari:
- • proverite izlaz komande:
- ls –l /etc
- 14
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- • preusmerite izlaz komande ls -l /etc (koja ispisuje jednu datoteku
- direktorijuma /etc u svakoj liniji na ekranu) u neku datoteku
- ls -l /etc > etc2.txt
- • pregledajte datoteku viewer-om less
- less etc2.txt
- • NAPOMENA: program za pregledanje teksta less koristite tako što strelicama na
- gore i dole (ili tasterima "Page Up" i "Page Down" pomerate tekst. Program less
- napuštate pritiskom na taster "Q".
- Drugo rešenje je da povežete te dve komande u pipeline:
- ls -l /etc | less
- 3. Obrišite datoteke koje ste kreirali (za brisanje se koristi komanda rm, a datoteke
- koje se brišu navode se kao argumenti):
- rm etc1 etc2
- 6. Rad sa tekstualnim datotekama
- Sadržaj tekstualne datoteke najlakše se može pregledati pomoću programa cat i less.
- U zavisnosti od veličine datoteke korisnik će odrediti koji će program koristiti - ukoliko
- je datoteka
- kraća i može se prikazati na jednom ekranu, može se koristiti cat. U suprotnom, koristi
- se program less koji prikazuje datoteku sa pauzom nakon svakog punog ekrana.
- Na primer:
- cat /etc/resolv.conf
- Komanda less pravi pauzu posle svakog ekrana i navigaciju po datoteci unapred i
- unazad. Nakon pokretanja programa less prikazuje prvi ekran sadržaja datoteke, a
- zatim se koriste interaktivne komande za navigaciju po sadržaju datoteke i napuštanje
- programa:
- • h ili H - prikazuje pomoć pri korišćenju interaktivnih komandi
- • <Space> - prikazuje sledeći ekran sadržaja datoteke
- • <DOWN> - prikazuje sledeću liniju teksta
- • <UP> - prikazuje prethodnu liniju teksta
- • <RIGHT> - horizontalno pomeranje ekrana udesno (ukoliko se ne koristi word
- wrap)
- 15
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- • <LEFT> - horizontalno pomeranje ekrana ulevo (ukoliko se ne koristi word
- wrap)
- • q ili Q - napuštanje programa less.
- Primer:
- less /etc/passwd
- ls -l /etc | less
- 6.1. Traženje teksta u datoteci
- Traženje teksta u datoteci može se ilustrovati sledećim primerom: ukoliko želite da
- utvrdite da li određeni korisnik ima nalog na sistemu ili ne pretražite datoteku
- /etc/passwd! (u ovoj datoteci su opisani svi korisnički nalozi na sistemu). Ukoliko se
- datoteka proverava programom less, a na sistemu postoji veliki broj korisničkih naloga,
- ova procedura može potrajati. Jednostavniji i brži način kojim se to može izvesti je
- korišćenje komande grep.
- Komanda grep traži navedeni uzorak teksta u svim linijama datoteke i na ekranu
- prikazuje one linije u kojima je uzorak nađen. U najjednostavnijem obliku, sintaksa
- komande grep je:
- grep text filename
- gde je text uzorak koji se traži u datoteci filename.
- Na primer, korisnik zadaje komandu:
- cat myfile
- i kao rezultat izvršavanja dobija sledeći tekst:
- The simplest form of a regular expression is one that
- includes only letters. For example, they would match only
- the three-letter sequence t, h, e. This pattern is found
- in the following words: the, therefore, bother.
- Sledeći primer ilustruje traženje stringa "only" u datoteci myfile.
- grep only myfile
- Kao rezultat, komanda vraća sledeći red:
- includes only letters. For example, the would match only
- 16
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- Aktivnost 9.
- 1. U datoteci /etc/passwd pronadjite liniju koja opisuje korisnika "root" komandom
- grep.
- grep root /etc/passwd
- 2. Prikažite sve datoteke i direktorijume iz direktorijuma /etc, koje u sebi sadrže reč
- hosts, kao što su:
- ghostscript
- hosts
- hosts.allow
- hosts.deny
- Ovo možete da uradite pipe-om komandi ls i grep:
- ls -l /etc | grep hosts
- 3. Sve datoteke i direktorijume iz direktorijuma /etc, koje u sebi sadrže reč hosts
- upišite u novu tekstualnu datoteku u vašem ličnom direktorijumu.
- ls -l /etc | grep hosts > ~/1.txt
- 6.2. Editor teksta "nano"
- Editor nano se pokreće sledećom komandom:
- nano [filename]
- Ukoliko korisnik zada komandu nano bez argumenata, ili kao argument navede ime
- nepostojeće datoteke, nano će početi rad na novoj datoteci. Ukoliko se kao argument
- navede ime postojeće datoteke, nano će datoteku učitati, nakon čega korisnik može da
- vrši izmene (ukoliko ima prava). Sadržaj datoteke na disku ažurira se sadržajem
- modifikovanim editorom nano tek kada korisnik zada komandu za snimanje datoteke.
- Po otvaranju nano editora, zgodno je da se malo upoznate sa okruženjem, pošto je
- drugačiji od uobičajenih editora sa grafičkim interfejsom.
- 17
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- Screenshot 1. Editor nano
- • Gornja traka prikazuje redom ime i verziju editora, ime trenutne datoteke i
- status izmena.
- • Srednji deo ekrana služi za prikaz sadržaja datoteke.
- • Na donjem delu se nalazi statusna traka sa bitnim informacijama ispod koje se
- nalaze dve pomoćne trake sa spiskom najčešće korišćenh komandi i kombinacije
- tastera koje se koriste za njih. U ovom delu će se nalaziti promenljiv sadržaj, u
- zavisnosti od konteksta.
- Većina komandi se zadaje kombinacijom CTRL ili ALT i nekog slova.
- • Uputstvo za korišćenje editora se dobija kombinacijom CTRL i G (Get help), gde
- se nalazi i spisak svih komandi.
- U uputstvima i na panelima je korišćenje tastera CTRL označeno simbolom ^, a ALT
- sa M-.
- • Na primer, na donjoj pomoćnoj traci piše ^W Where Is – to znači da treba da
- pritisnemo kombinaciju tastera CTRL i W da bi započeli pretragu teksta
- • Slično, M-6 predstavlja kombinaciju ALT i 6 za kopiranje teksta.
- Za navigaciju po tekstu mogu se koristiti kursorski tasteri, tj. strelice, kao i PgUp i
- PgDn.
- Za rad sa blokovima (clipboard, copy, paste) koriste se sledeće komande:
- • M-A (ALT+A) početak markiranja bloka teksta od kursora (select)
- 18
- Osnovi rada sa datotekama i direktorijumima (prvi deo)
- • M-6 (ALT+6) kopiranje teksta u bafer (copy)
- • ^K (CTRL+K) isecanje teksta u bafer (cut)
- • ^U (CTRL+U) lepljenje teksta na tekuću poziciju (paste)
- NAPOMENA: Ako se vrši isecanje ili kopiranje teksta bez prethodnog markiranja, uzima
- se cela linija!
- Za snimanje datoteke i napuštanje editora nano koriste se sledeće komande:
- • ^O snimanje datoteke na disk (traži unos imena fajla na statusnoj traci,
- potvrđuje se sa <enter>)
- • ^X napuštanje editora (ako fajl nije snimljen, pitaće nas za akciju Yes/No/Cancel)
- 19
- Visoka škola elektrotehnike i računarstvastrukovnih
- studija
- Beograd
- OPERATIVNI SISTEMI 1
- VEŽBA 3
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- Sadržaj:
- 1. Osnovni pojmovi Linux sistema datoteka
- 2. O aktivnom stablu i aktiviranju fajl sistema
- 3. Kopiranje datoteka
- 4. Pomeranje i promena imena datoteka
- 5. Brisanje datoteka
- 6. Rad sa direktorijumima
- Nemanja Maček
- Borislav Đorđević
- Borislav Krneta
- Beograd, 2015
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 1. Osnovni pojmovi Linux sistema datoteka
- NAPOMENA: Pročitajte ovo više informativno i pokušajte da shvatite suštinu bez
- zalaženja u detalje! Diskovi, particije, aktivno stablo i administracija sistema datoteka
- detaljno se rade u okviru kursa Operativni sistemi 2.
- Da bi particija mogla da se koristi za čuvanje podataka potrebno kreirati fajl sistem.
- Fajl sistem čine: zaglavlje (u kome se nalazi najmanje podataka, ali su ti podaci
- neophodni za funkcionisanje sistema datoteka), strukture za organizaciju podataka na
- medijumu (meta-data area) i sami podaci, odnosno datoteke i direktorijumi.
- Linux sistem datoteka čine:
- • zaglavlje (superblock)
- • tabela indeksnih čvorova (i-node tabela)
- • blokovi sa podacima (data blocks)
- • direktorijumski blokovi (engl. directory blocks)
- • blokovi indirektnih pokazivača (indirection block)
- Slika 1. Skica Linux sistema datoteka
- 1
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- Superblok je zaglavlje sistema datoteka i sadrži informacije o sistemu datoteka u
- celini. Sadržaj regularnih datoteka čini određeni broj blokova podataka. Direktorijumi
- se posmatraju kao specijalne datoteke koje sadrže direktorijumske blokove.
- Direktorijumski blokovi su tabele sastavljene od određenog broja file-info struktura
- (FCB, File Control Block). File-info struktura sadrži ime objekta i pokazivač na indeksni
- čvor (i-node) za taj objekat.
- I-node sadrži sve informacije o objektu koji opisuje osim imena:
- • tip objekta (npr. regularna datoteka, direktorijum) i pristupna prava za tri
- vlasničke kategorije (vlasnik, grupa i “ostatak sveta”)
- • broj hard linkova na dati objekat
- • user ID, group ID (vlasnik i grupa objekta)
- • veličinu objekta
- • vreme zadnjeg pristupa objektu, vreme zadnje modifikacije objekta i vreme
- zadnje modifikacije indeksnog čvora objekta.
- • listu pokazivača:
- • direktnih, na blokove sa podacima, koja je dovoljna da se adresiraju prvih
- nekoliko blokova podataka koji čine početak datoteke (broj zavisi od tipa
- sistema datoteka) i
- • indirektnih (na jednostruke, dvostruke i trostruke indirektne blokove).
- Ove informacije dobijate kada zadate komandu koja prikazuje tzv. long-listing. Na
- primer:
- nmacek2@lrs41:~$ ls -l /var
- drwxr-xr-x 2 root root 4096 јан 12 17:00 backups
- drwxr-xr-x 21 root root 4096 дец 19 13:26 cache
- drwxrwsrwt 2 root whoopsie 4096 јан 12 16:47 crash
- drwxr-xr-x 76 root root 4096 дец 22 19:37 lib
- drwxrwsr-x 2 root staff 4096 апр 11 2014 local
- drwxrwxr-x 14 root syslog 4096 мар 14 12:34 log
- drwxrwsr-x 2 root mail 4096 јул 22 2014 mail
- drwxrwsrwt 2 root whoopsie 4096 јул 23 2014 metrics
- 2
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 2. O aktivnom stablu i aktiviranju fajl sistema
- Da bi sprečili moguće zbunjivanje. Komande C:, D:, E: i slične na operativnom sistemu
- Linux NE RADE! Vašim fajl sistemima ne pristupate preko logičkih diskova. Fajl sistemi
- se pod Linux operativnim sistemom aktiviraju montiranjem (engl. mounting) na
- aktivno stablo, tj. na mount-point direktorijume.
- Početak stabla je koreni (root) direktorijum na koji se root fajl sistem koji sadrži
- osnovnu direktorijumsku strukturu, operativni sistem, instalirani softver, neke
- privremene datoteke i korisnički direktorijum root korisnika. U root fajl sistemu
- administrator kreira poddirektorijume na koje “montira” tj lepi druge fajl sisteme,
- uključujući i DVD medijume, USB fleš i hard diskove itd.
- Da pojasnimo: kad udenete USB fleš u računar, grafičko radno okruženje će montirati
- fleš na neki direktorijum (npr /media/transcend). Ako radite u komandnoj liniji, onda
- morate ručno da kreirate neki direktorijum i montirate fleš na taj direktorijum.
- O svemu ovome više priče će biti u operativnim sistemima 2, ovo je više informativnog
- karaktera. Pogledajte sliku 2 i biće vam jasno kako ovo radi.
- Slika 2. Princip aktiviranja na aktivno stablo
- 3
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 2.1. Pregled značajnijih direktorijuma u aktivnom stablu
- Root fajl sistem sadrži osnovnu direktorijumsku strukturu stabla. Značajniji poddirektorijumi
- u aktivnom stablu su:
- • /bin - najčešće korišćene komande koje mogu koristiti regularni korisnici
- • /boot - datoteke koje koristi boot loader (često se realizuje kao zasebni FS)
- • /dev - specijalne datoteke koje predstavljaju uređaje (nodes), koje se kreiraju
- prilikom instalacije Linux sistema
- • /etc - konfiguracione datoteke u tekstualnom obliku
- • /home - lični direktorijumi korisnika, npr ako je username george, onda je home
- direktorijum /home/george
- • /mnt, /media - direktorijumi u kome se nalaze mount-point direktorijumi za USB
- diskove i DVD uređaje (zavisno od distribucije, može biti i neki drugi, npr:
- /var/run/nmacek/media)
- • /tmp - privremene datoteke
- • /root - lični direktorijum korisnika root
- • /usr - većina korisničkih komandi, prateće biblioteke i dokumentacija
- • /var - spool direktorijumi, log datoteke, slične stvarčice
- Slika 3. Značajniji direktorijumi u aktivnom stablu
- 4
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 3. Kopiranje datoteka
- Komanda cp služi za kopiranje datoteka i direktorijuma. U opštem slučaju sintaksa
- komande cp je:
- cp SOURCE DESTINATION
- Komanda cp kopira izvorišni objekat (SOURCE) u odgovarajuće odredište (DESTINATION).
- Argumenti SOURCE i DESTINATION moraju se navesti. Ukoliko korisnik želi da iskopira
- datoteku u tekući direktorijum, kao odredišni argument može navesti tačku.
- U zavisnosti od argunemata postoje tri osnovna oblika korišćenja komande cp:
- • kopiranje jedne datoteke
- • kopiranje grupe datoteka iz istog direktorijuma
- • kopiranje direktorijumskog stabla.
- 3.1. Kopiranje jedne datoteke
- Opšti oblik komande:
- cp source_file destination
- • Argument source_file je ime izvorišne datoteke
- • Argument destination je odredišni direktorijum ili ime odredišne datoteke.
- • Argumenti mogu, po potrebi, sadržati apsolutne ili relativne putanje.
- Primeri:
- 1. Kopiranje datoteke a.a u b.b
- cp a.a b.b
- 2. Kopiranje datoteke a.a iz direktorijuma /home u /tmp sa promenom imena u b.b
- cp /home/a.a /tmp/b.b
- 3. Kopiranje datoteke a.a iz tekućeg direktorijuma u direktorijum /tmp
- cp a.a /tmp/a.a
- Napomena: ne može se kreirati istoimena kopija datoteke na istom direktorijumu
- (datoteka se ne može kopirati u samu sebe).
- 5
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- Aktivnost 1: jednostavno kopiranje.
- Pozicionirajte se na svoj lični direktorijum:
- cd
- Kreirajte komandom touch jednu datoteku u svom home direktorijumu:
- touch original
- Iskopirajte datoteku:
- cp original kopija
- Pogledajte šta piše u i-nodeovima originala i kopije:
- ls -l original kopija
- Obrišite obe datoteke komandom rm:
- rm original kopija
- Aktivnost 2: kopiranje datoteke iz drugog direktorijuma u tekući, sa promenom imena
- datoteke.
- Iskopirajte jednu datoteku čiji je vlasnik korisnik root u svoj lični direktorijum:
- cp /bin/cp mycp
- Pogledajte šta piše u i-nodeovima originala i kopije (proverite kome pripada original, a
- kome kopija):
- ls -l /bin/cp mycp
- Obrišite datoteku mycp:
- rm mycp
- 3.2. Kopiranje grupe datoteka iz istog direktorijuma
- Opšti oblik komande:
- cp source_files dest_dir
- • Argument source_files je grupa izvorišnih datoteka koji se formira pomoću
- džoker karaktera. Podsetnik: džokeri mogu da zamene jedan karakter (?), više
- karaktera (*) ili opseg ([a-z], [A-Z], [0-9]).
- • Odredišni objekat u ovom režimu rada mora biti direktorijum (apsolutna ili
- relativna putanja) i specificira se argumentom dest_dir.
- 6
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- Primeri:
- 1. Kopiranje svih datoteka koje počinju slovom “a” iz tekućeg direktorijuma u /tmp
- cp a* /tmp
- 2. Kopiranje svih datoteka koje sadrže dva karaktera (prvi karakter je “a”) iz tekućeg
- direktorijuma u /tmp
- cp a?.old /tmp
- 3. Kopiranje svih datoteka iz direktorijuma /etc koji počinju karakterom “a”, “b”, “c” ili
- “d” u tekući direktorijum
- cp /etc/[a-d]* .
- Napomene:
- • Kopira se grupa datoteka iz istog direktorijuma.
- • Nije moguće kopirati grupu datoteka sa promenom imena kopija. Na primer:
- cp a* /tmp/b*
- • Originali i kopije moraju se nalaziti na različitim direktorijumima. Na primer:
- • cp a* .
- Aktivnost 3: upotreba džokera za kopiranje datoteka iz jednog direktorijuma u drugi.
- 1. Kreirajte dva direktorijuma u svom home direktorijumu:
- mkdir src dst
- 2. Kreirajte nekoliko datoteka u direktorijumu src zadajući redom sledeće komande:
- Pređite na direktorijum src:
- cd src
- Kreirajte datoteke:
- touch a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5
- Vratite se na svoj home direktorijum:
- cd
- 3. Iskopirajte u direktorijum dst sve datoteke koje počinju na slovo “a”:
- cp src/a* dst/
- 4. Sada probajte da Iskopirate u direktorijum dst sve datoteke koje počinju na slovo
- “b”, ali tako da im promenite prvo slovo u “d” (npr b1 se kopira u d1, b2 u d2...):
- cp src/b* dst/d*
- Da li ste u tome uspeli?
- 7
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 5. Ako niste, probajte da kopirate datoteku po datoteku i da joj pri tom menjate ime:
- cp src/b1 dst/d1
- cp src/b2 dst/d2-RC5
- cp src/b3 dst/d31
- cp src/b4 dst/d41
- cp src/b5 dst/d5-tux
- Aktivnost 4: još malo priče o džokerima (da se podsetite).
- Prikažite sve datoteke u direktorijumimu dst:
- ls -l dst
- Prikažite sve datoteke u direktorijumu dst čije je ima dužine dva karaktera:
- ls dst/??
- Prikažite sve datoteke u direktorijumu dst čije ime počinje na “d”:
- ls dst/d*
- Prikažite sve datoteke u direktorijumu dst čije ime počinje na “d” i dužine je 2
- karaktera:
- ls dst/d?
- Prikažite sve datoteke u direktorijumu dst u čijem je imenu drugi karakter “2”:
- ls dst/?2*
- Obrišite kompletne direktorijume dst i src komandom rm:
- rm -rf src dst
- 3.3. Kopiranje direktorijumskog stabla
- Opšti oblik komande:
- cp –r source dest_dir
- Primeri:
- 1. Kopiranje direktorijuma /etc sa svim poddirektorijumima i datotekama u
- direktorijum /tmp/oldconfig/etc
- cp –r /etc /tmp/oldconfig
- Obratite pažnju: datoteka /etc/passwd kopira se u /tmp/oldconfig/etc/passwd
- 2. Kopiranje kompletnog sadržaja direktorijuma /etc u direktorijum /tmp/oldconfig
- cp –r /etc/* /tmp/oldconfig
- Obratite pažnju: datoteka /etc/passwd kopira se u /tmp/oldconfig/passwd
- 8
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 3. Kopiranje svij datoteka i poddirektorijuma iz tekućeg direktorijuma, čije ime počinje
- karakterom “a” u direktorijum /tmp/mybackup.
- cp –r a* /tmp/mybackup
- Napomene:
- • Originali i kopije moraju imati ista imena.
- • Nije moguće izvesti kopiranje sa promenom imena kopija. Na primer:
- cp -r /etc/a* /tmp/b*
- • Originali i kopije moraju biti na različitim direktorijumima.
- Pitanje 1.
- Pronađite uljeza (pogrešno zadatu komandu) i objasite u čemu je greška:
- a. cp /etc/passwd
- b. cp /etc/passwd ~
- c. cp /etc/passwd /tmp
- d. cp /etc/passwd /tmp/copy_of_passwd
- 4. Pomeranje i promena imena datoteka
- Komanda mv služi za pomeranje i promenu imena datoteka i direktorijuma. U opštem
- slučaju, sintaksa komande mv je:
- mv SOURCE DESTINATION
- Komanda mv pomera izvorišni objekat (SOURCE) u odgovarajuće odredište (DESTINATION).
- Ukoliko je izvorišni objekat datoteka komandom mv joj se može promeniti ime.
- Argumenti SOURCE i DESTINATION moraju se navesti. Ukoliko korisnik želi da pomeri
- datoteku u tekući direktorijum, kao odredišni argument može navesti tačku.
- U zavisnosti od parametara SOURCE i DESTINATION postoje dva osnovna oblika korišćenja
- komande mv:
- • promena imena i/ili pomeranje jedne datoteke i
- • pomeranje grupe datoteka iz istog direktorijuma.
- 9
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 4.1. Promena imena i/ili pomeranje jedne datoteke
- Opšti oblik komande:
- mv source_file destination
- • Argument source_file je ime izvorišne datoteke
- • Argument destination može je odredišni direktorijum i/ili novo ime datoteke.
- Primeri:
- 1. Promena imena datoteke
- mv a.a b.b
- 2. Pomeranje datoteke iz jednog direktorijuma u drugi
- mv /home/a.a /tmp/a.a
- 3. Promena imena datoteke i pomeranje u drugi direktorijum
- mv /home/a.a /tmp/b.b
- 4.2. Pomeranje grupe datoteka iz istog direktorijuma
- Opšti oblik komande:
- mv source_file dest_dir
- • Argument source_files je grupa izvorišnih datoteka koja se formira pomoću
- džoker karaktera (*, ?, [a-z], [A-Z], [0-9]).
- • Argument dest_dir je odredišni objekat koji u ovom slučaju mora biti
- direktorijum (apsolutna ili relativna putanja).
- Primeri:
- 1. Pomera sve fajlove koji počinju na “a” u /tmp
- mv a* /tmp
- 2. Korišćenje džokera
- mv a?[0-9].old /usr/tmp
- 3. Pomera fajlove koji počinju na “a”, “b”, “c” ili “d” u direktorijum ./backup
- mv /etc/[a-d]* ./backup
- 10
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- Napomene:
- • U ovom režimu rada komanda mv pomera grupu datoteka iz iste grane isključivo
- u drugi direktorijum.
- • Pri tom originali i kopije moraju imati ista imena.
- • Nije moguće istovremeno izvesti pomeranje grupe datoteka sa promenom
- imena. Na primer:
- mv a* /tmp/b*
- Aktivnost 5: pomeranje jedne datoteke, grupe datoteka i direktorijuma
- 1. kreirajte dva direktorijuma u svom ličnom direktorijumu.
- mkdir src dst
- 2. Kreirajte nekoliko datoteka u direktorijumu src zadajući redom sledeće komande:
- Pređite na direktorijum src:
- cd src
- Kreirajte datoteke:
- touch a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5
- Vratite se na svoj home direktorijum:
- cd
- 2. Pomerite datoteku a1 u direktorijum dst:
- mv src/a1 dst/
- ls src
- ls dst
- 3. Pomerite datoteku a2 u direktorijum dst i promenite joj ime:
- mv src/a2 dst/a2_v1.01
- ls src
- ls dst
- 4. Promenite ime datoteke a3 u c6:
- mv src/a3 src/c6
- ls src
- 5. Pomerite grupu datoteka kojima ima počinje na “b” u direktorijum dst:
- mv src/b* dst/
- ls src
- ls dst
- 11
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 6. Probajte da pomerite grupu datoteka i da im promenite ime:
- mv src/c* dst/d*
- ls -l dst
- Da li ste uspeli u tome?
- 7. Probajte da pomerite ceo poddirektorijum:
- mv src dst/
- ls dst
- Da li ste uspeli u tome?
- 8. Obrišite poddirektorijume src i dst:
- rm -rf src dst
- Pitanje 2.
- Pronađite uljeza (pogrešno zadatu komandu) i objasite u čemu je greška:
- a. mv a* /tmp
- b. mv a?[0-9].old /tmp/a?[0-9].new
- c. mv /etc/[a-d]* ./backup
- d. mv /etc/?[a-d] ./backup/etc
- 5. Brisanje datoteka
- Komanda rm služi za brisanje datoteka i direktorijuma. U opštem slučaju, sintaksa
- komande rm je:
- rm OBJECT
- što znači da komanda rm briše objekat sistema datoteka (OBJECT). Parametar OBJECT se
- mora navesti, a u zavisnosti od njega postoje tri osnovna oblika korišćenja komande:
- • brisanje jedne datoteke
- • brisanje grupe datoteka iz istog direktorijuma
- • rekurzivno brisanje direktorijumskog stabla
- 5.1. Brisanje jedne datoteke
- Opšti oblik komande:
- rm filename
- 12
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- • Argument filename je ime datoteke koja će biti obrisana, a opciono može
- sadržati i apsolutnu ili relativnu putanju datoteke.
- Primeri:
- 1. Brisanje datoteke a.a iz tekućeg direktorijuma
- rm a.a
- 2. Briše passwd.old iz direktorijuma /etc
- rm /etc/passwd.old
- 5.2. Brisanje grupe datoteka iz istog direktorijuma
- Opšti oblik komande:
- rm group_of_flies
- • Argument group_of_flies je grupa izvorišnih datoteka koja se formira pomoću
- džoker karaktera (*, ?, [a-z], [A-Z], [0-9]).
- Primeri:
- 1. Brisanje svih datoteka čije ime počinje karakterom “a” iz tekućeg direktorijuma
- rm a*
- 2. Brisanje svih datoteka čije ime se završava sa .conf.old iz direktorijuma /etc
- rm /etc/*.conf.old
- Napomena: u ovom režimu rada komandom rm mogu se obrisati isključivo datoteke
- koje se nalaze u istom direktorijumu.
- 5.3. Rekurzivno brisanje direktorijumskog stabla
- Opšti oblik komande:
- rm -r directory
- Primeri:
- 1. Brisanje direktorijum backup i kompletnog sadržaja
- rm –r /etc/backup
- 13
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- 2. Brisanje sadržaja direktorijuma backup ali ne i samog direktorijuma
- rm –r /etc/backup/
- Aktivnost 6: brisanje datoteka i poddirektorijuma
- 1. Pozicionirajte se na svoj lični direktorijum
- cd
- 2. Kreirajte dve datoteke, direktorijum i u njemu još dve datoteke:
- touch a1 a2 b1 b2
- mkdir dir1
- touch dir1/c1
- touch dir1/c2
- 3. Probajte da obrišete dve datoteke sa fiegom -i:
- rm -i a*
- 4. Probajte da obrišete dve datoteke sa flegom -f:
- rm -f b*
- 5. Probajte da obrišete direktorijum (koji nije prazan) komandom rmdir:
- rmdir dir1
- Jeste li uspeli u tome?
- ls -l
- Ako niste, probajte ovako:
- rm -rf dir1
- Jeste li sada uspeli?
- Pitanje 3. Objasnite čemu služe opcije -i i -f komande rm. Koristite man stranicu!
- 6. Rad sa direktorijumima
- Direktorijumi se kreiraju komandom mkdir (make directory), čija je sintaksa:
- mkdir dir
- Ukoliko se kao parametar komandi navede -p, komanda mkdir će napraviti sve
- roditeljske direktorijume koji su neophodni.
- Na primer, komanda:
- mkdir -p pera/kojot/super/genije
- 14
- Osnovi rada sa datotekama i direktorijumima (drugi deo)
- radi isto što i sledeće komande:
- mkdir pera
- mkdir pera/kojot
- mkdir pera/kojot/super
- mkdir pera/kojot/super/genije
- Direktorijum se može obrisati komandama rm i rmdir (remove directory).
- • Komandom rmdir može se obrisati isključivo prazan direktorijum.
- • Komanda rm je moćnija – za razliku od komande rmdir, rekurzivnim brisanjem
- komandom rm mogu se ukloniti cela direktorijumska stabla sa datotekama.
- Primeri:
- 1. Brisanje direktorijuma backup (samo ako je prazan!)
- rmdir /backup
- 2. Brisanje direktorijuma backup i kompletnog sadržaj
- rm -r /backup
- Aktivnost 7: kreiranje direktorijuma i brisanje direktorijuma
- 1. Pređite na lični direktorijum:
- cd
- 2. Kreirajte jedan direktorijum:
- mkdir newdirectory
- 3. Kreirajte stablo:
- mkdir -p 1/11/111
- 4. Proverite šta je prethodna komanda napravila:
- ls
- cd 1
- ls
- cd 11
- ls
- cd
- Obrišite direktorijum i stablo
- rmdir newdirecory
- rm -rf 1
- 15
- Visoka škola elektrotehnike i računarstvastrukovnih
- studija
- Beograd
- OPERATIVNI SISTEMI 1
- VEŽBA 4
- Kontrola pristupa na nivou sistema datoteka
- Contrôle d'accès du système de fichiers
- Sadržaj
- 1. Vlasništvo i prava pristupa
- 2. Podrazumevana prava pristupa
- 3. Promena vlasništva i pristupnih prava
- 4. Uticaj kontrole pristupa na rad sa datotekama
- 5. Sticky bit i SUID
- Nemanja Maček
- Borislav Đorđević
- Borislav Krneta
- Beograd, 2015
- Contrôle d'accès du système de fichiers
- 1. Vlasništvo i prava pristupa
- Kontrola pristupa na nivou sistema datoteka obuhvata:
- • vlasničke odnose (pripadnost objekata korisnicima i grupama) i
- • prava pristupa (dodeljuju se svakoj datoteci i direktorijumu i određuju šta
- korisnici mogu da rade)
- Komanda ls -l (“long listing”) prikazuje sve informacije o objektu koje (osim imena)
- čita iz i-nodova objekata. Na osnovu toga možete da odredite šta ko može da uradi sa
- nekom datotekom ili direktorijumom.
- Podsetnik:
- ls -la prikazuje sve datoteke, uljučujući i skrivene
- ls -ld prikazuje informacije iz i-nodea direktorijuma a ne njegov sadržaj
- Primer:
- ls -la
- -rwxr-xr-x 1 root root 93 2012-02-27 22:52 cssh.sh
- drwxr-xr-x 2 korisnik korisnik 4096 2012-02-27 22:53 .data
- ---------- - ------- -------- ----- ---------------- --------
- Tip + AR HL OWNER GROUP SIZE DATE and TIME NAME
- PRAVA PRISTUPA VLASNIČKI ODNOSI OSTALI PODACI O DATOTECI
- 1.1. O vlasniku, grupi i ostatku sveta
- Polja OWNER i GROUP određuju vlasnika i grupu datoteke.
- • Vlasnik (OWNER) je korisnik koji je kreirao objekat, odnosno korisnik kome je
- root dodelio vlasništvo.
- • Grupa (GROUP) je primarna grupa korisnika koji je objekat kreirao ili grupa kojoj
- je root dodelio vlasništvo. Primarna grupa korisnika je grupa koju MORATE da
- navedete kada kreirate korisnika. Navodi se u datoteci /etc/group.
- • Svi ostali korisnici koji nisu ni vlasnik objekta, niti pripadaju grupi kojoj objekat
- pripada spadaju u kategoriju ostali, tj ostatak sveta (others).
- 1
- Contrôle d'accès du système de fichiers
- Prava pristupa nekog korisnika određuju se prema vlasničkoj kategoriji kojoj korisnik
- pripada. Dakle, korisnik može biti ili:
- • vlasnik datoteke
- • član grupe kojoj je dodeljena datoteka
- • ostatak sveta u odnosu na datoteku.
- Rezultujuće pravo vlasnika koji pripada grupi kojoj je objekat dodeljen određuje se:
- • kao unija prava vlasnika i grupe (kod starijih UNIXa)
- • kao pravo vlasnika (kod POSIX-compliant UNIXa, kao što je Linux)
- 1.2. Prava pristupa
- Polje Tip + AR označava prava pristupa za tri vlasničke kategorije:
- • karakter 1:
- • “d” direktorijum
- • “-” datoteka
- • “l” simbolički link
- • “b” blok uređaj
- • karakteri 2-10: prava pristupa objektu za vlasnika, grupu i ostatak sveta.
- Potpuni skup prava za svaku vlasničku kategoriju čine tri prava:
- • pravo čitanja (“r” – Read)
- • pravo upisa (“w” – Write)
- • pravo izvršavanja (“x” - eXecute)
- Uvek je prva pozicija read, druga write i treća execute - “rwx”.
- Ukoliko se na nekoj poziciji umesto slova r, w ili x nalazi crtica (“-”), pravo je ukinuto.
- Šta pristupna prava omogućuju da uradite sa datotekom?
- • “r“ – čitanje sadržaja datoteke (prikazivanje na ekranu, štampanje, kopiranje)
- • “w” – izmena sadržaja datoteke (ne znači da korisnik može da obriše datoteku !)
- • “x” – izvršavanje datoteke (ako je shell program ili binarna izvršna datoteka)
- 2
- Contrôle d'accès du système de fichiers
- Šta pristupna prava omogućuju da uradite sa direktorijumom?
- • “r” – čitanje sadržaja direktorijuma, tj. file-info struktura (korisnik može da izvrši
- komandu ls)
- • “w” – izmena sadržaja direktorijuma (dodavanje novih i brisanje postojećih
- objekata u njemu)
- • “x” – pozicioniranje na dir. (cd), puni listing sadržaja (ls -l) i pretraživanje
- direktorijuma (find)
- NAPOMENA 1: da bi direktorijum na Linuxu bio praktično upotrebljiv korisnicima treba
- dati prava “r” i “x”.
- NAPOMENA 2: pravo “w” dato nad datotekom ne znači da možete da je obrišete. Da bi
- ste obrisali datoteku, potrebno je pravo “w” nad direktorijumom u kome se nalazi.
- 1.3. Primer
- Na primer, korisnik zadaje sledeću komandu:
- ls -l /home/pepe/lemeow
- i kao rezultat dobija:
- -rwxr-x--- 1 pepe mouffette 509 Mar 10 17:21 lemeow
- Karakteri na pozicijama od 1 do 10 (ch 1 - ch 10) imaju značenje:
- • ch 1 “-”
- datoteka je obična, tj. regularna
- • ch 2,3,4 “rwx”
- vlasnik datoteke (korisnik pepe) može čitati, modifikovati i izvršavati datoteku
- • ch 5,6,7 “r-x”
- korisnici koji pripadaju grupi mouffette mogu čitati i izvršavati datoteku
- • ch 8,9,10 “---”
- ostatak sveta ne može ništa da radi sa datotekom
- Aktivnost 1.
- Pokrenite terminal. Prikažite kontekst datoteke i odredite vlasničke odnose za
- • datoteku /etc/passwd i
- • direktorijum /etc.
- 3
- Contrôle d'accès du système de fichiers
- Zadajte sledeće komande:
- ls -l /etc/passwd
- ls -ld /home/korisnik
- Za prethodno pomenute objekte odrediti:
- 1. ko je vlasnik?
- 2. kojoj grupi su objekti dodeljeni?
- 3. koja su prava pristupa vlasnika, grupe i ostatka sveta?
- 4. šta vlasnik, grupa i ostatak sveta mogu da rade sa tim objektima?
- 1.4. Zašto je “rwxr-x-rx” isto što i 755?
- Ako je
- • “r” = 4
- • “w” = 2
- • “x”=1
- onda je:
- 7 = 4 + 2 + 1 = rwx
- 6 = 4 + 2 + 0 = rw-
- 5 = 4 + 0 + 1 = r-x
- 4 = 4 + 0 + 0 = r--
- 3 = 0 + 2 + 1 = -wx
- 2 = 0 + 2 + 0 = -w-
- 1 = 0 + 0 + 1 = --x
- 0 = 0 + 0 + 0 = ---
- Primeri:
- 644 = rw-r--r-- (vlasnik ima pravo upisa i čitanja, grupa i ostali pravo čitanja)
- 750 = rwxr-x--- (vlasnik ima sva prava, grupa prava čitanja i izvršavanja, ostali ništa)
- Aktivnost 2: Uticaj prava na neke operacije.
- Pristupna prava ne dotiču root korisnike. Zato se ovaj zadatak radi bez korišćenja sudo,
- pod običnim, neprivilegovanim nalogom.
- Proverite i OBJASNITE zašto sledeće komande možete, odnosno ne možete da
- izvršite:
- 1. prelazak na /root direktorijum
- cd /root
- savet – odredite prava za svoju vlasničku kategoriju:
- 4
- Contrôle d'accès du système de fichiers
- ls -ld /root
- 2. pregledanje sadržaja datoteke /etc/shadow:
- cat /etc/shadow
- savet – odredite prava za svoju vlasničku kategoriju:
- ls -l /etc/shadow
- 3. pregledanje sadržaja datoteke /etc/passwd:
- cat /etc/passwd
- savet – odredite prava za svoju vlasničku kategoriju:
- ls -l /etc/passwd
- 4. upis u direktorijum /bin:
- touch /bin/myfile
- savet – odredite prava za svoju vlasničku kategoriju:
- ls -ld /bin
- 5. brisanje datoteke iz /bin direktorijuma:
- rm /bin/cp
- savet – odredite prava za svoju vlasničku kategoriju:
- ls -ld /bin
- 2. Podrazumevana prava pristupa
- Linux pri kreiranju dodeljuje objektu vlasnika i grupu i postavlja podrazumevana prava
- pristupa:
- • Korisnik koji kreira objekat postaje njegov vlasnik
- • Objekat se dodeljuje primarnoj grupi tog korisnika.
- • Podrazumevana prava pristupa zavise od promenljive umask.
- 2.1. Promenljiva umask
- Inicijalna prava pristupa dodeljuju se na osnovu vrednosti promenljive umask.
- Promenljiva umask je specifična za svakog korisnika i postavlja se prilikom
- prijavljivanja na sistem (uobičajena vrednost je 022).
- Trenutna vrednost može se videti i promeniti pomoću istoimene komande.
- Na primer:
- 5
- Contrôle d'accès du système de fichiers
- umask # ispisuje trenutnu vrednost promenljive umask
- 0022 # trenutna vrednost promenljive umask
- umask 027 # menja vrednost umask u 027
- umask # ispisuje trenutnu vrednost promenljive umask
- 0027 # trenutna vrednost promenljive umask
- Prva nula u vrednosti promenljive umask označava da je ona prikazana u oktalnoj
- formi.
- Probajte da ukucate komandu “umask -S” i protumačite rezultat izvršenja komande.
- Namena ove promenljive je da ukida prava pristupa novokreiranim direktorijumima i
- datotekama.
- Na primer:
- • Ako je umask 022, ukida se pravo upisa za grupu i ostatak sveta.
- • Ako je umask 027, ukida se pravo upisa za grupu i sva prava za ostatak sveta.
- Inicijalna prava pristupa pri kreiranju se razlikuju za direktorijume i datoteke:
- • za direktorijum se vrednost umask oduzima od 777 (rwxrwxrwx)
- • za datoteku se vrednost umask oduzima od 666 (rw-rw-rw-), zato što se
- podrazumevano NE DODELJUJE pravo izvršavanja!
- Primer: vrednost promenljive umask je 022. Podrazumevana prava za datoteku su:
- rw-rw-rw- 666 (podrazumevano pravo)
- oduzmi: ----w--w- 022 (umask)
- dobija se: rw-r----- 644 (rezultat)
- U ovom slučaju je tačno 666-022=644, ali to nije ispravan način razmišljanja! ZAŠTO?
- Ako je umask 027, podrazumevana prava za datoteku NISU 666-027=639! Vrednost 9
- ne postoji kao skup prava! Drugim rečima:
- rw-rw-rw- 666 (podrazumevano pravo)
- oduzmi: ----w-rwx 027 (umask)
- dobija se: rw-r----- 640 (rezultat)
- Dakle, ako je umask 027, rezultujuća prava za novokreiranu datoteku su 640!
- 6
- Contrôle d'accès du système de fichiers
- Primer:
- umask 027
- mkdir mydir
- touch myfile
- ls -la
- drwxr-x--- 2 nm nm 4096 dec 23 14:33 mydir
- -rw-r----- 1 nm nm 0 dec 23 14:33 myfile
- Aktivnost 3: Podrazumevana pristupna prava i vlasništvo novih datoteka i
- direktorijuma.
- 1. Proverite vrednost umask promenljive
- umask
- 2. Pređite na home direktorijum
- cd
- 3. Kreirajte novu datoteku
- touch myfile
- 4. Pokušajte sami da odredite, a zatim proverite pristupna prava nove datoteke
- komandom
- ls -l myfile
- 5. Obrišite datoteku komandom
- rm myfile
- 6. Kreirajte novi direktorijum
- mkdir mydir
- 7. Pokušajte sami da odredite, pa onda proverite pristupna prava novog direktorijuma
- ls -ld mydir
- 8. Uklonite direktorijum komandom
- rmdir mydir
- Aktivnost 4: Promena vrednosti promenljive umask i uticaj na kreiranje objekata.
- 1. Promenite vrednost umask promenljive
- umask 027
- 2. Pređite na home direktorijum
- cd
- 7
- Contrôle d'accès du système de fichiers
- 3. Kreirajte novu datoteku
- touch myfile
- 4. Probajte da odredite sami, pa onda proverite pristupna prava nove datoteke
- ls -l myfile
- 5. Obrišite datoteku
- rm myfile
- 6. Kreirajte novi direktorijum
- mkdir mydir
- 7. Probajte da odredite sami, pa proverite prava novog direktorijuma
- ls -ld mydir
- 8. Uklonite direktorijum
- rmdir mydir
- PONOVITE AKTIVNOST ZA UMASK VREDNOST 077!
- 3. Promena vlasništva i pristupnih prava
- Vlasnik, grupa i prava pristupa se dodeljuju svakom objektu prilikom kreiranja, a
- kasnije se mogu promeniti.
- • samo VLASNIK objekta ili ROOT mogu promeniti prava pristupa
- • samo ROOT može promeniti vlasnika (sprečava “maltretiranje” korisnika
- prepunjenjem kvote)
- 3.1. Promena pristupnih prava (simbolički režim)
- Opšti oblik komande:
- chmod [-R] categories operator permissions [...] filename
- Argumenti i opcije imaju sledeće značenje:
- • categories: vlasnik “u”, grupa “g”, others “o”, sve vlasničke kategorije “a”
- • operator: dodela prava “+”, ukidanje prava “–“, definisanje skupa prava “=”
- • permissions: čitanje “r”, modifikacija “w”, izvršavanje “x”
- • Parametar -R inicira promenu pristupnih prava direktorijuma i svih njegovih
- objekata (poddirektorijuma i datoteka)
- Vlasnik može dodeliti ili ukinuti prava koja želi, bez poznavanja trenutnih prava.
- 8
- Contrôle d'accès du système de fichiers
- Ovaj režim je pogodan za dodelu ili oduzimanje prava većem broju datoteka sa
- različitim trenutnim skupom prava.
- Primer:
- Datoteka myfile trenutno ima postavljena prava 666 (rw-rw-rw-).
- ls -l myfile
- -rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile
- 1. Sledeća komanda postavlja r-x vlasniku i oduzima w grupi i ostalima:
- chmod u=rx,go-w myfile
- ls -l myfile
- -r-xr--r-- 1 nm nm 0 dec 23 15:25 myfile
- 2. Sledeća komanda dodaje pravo upisa vlasniku:
- chmod u+w myfile
- ls -l myfile
- -rwxr--r-- 1 nm nm 0 dec 23 15:25 myfile
- Aktivnost 5: promena pristupnih prava (simbolički režim)
- 1. Pozicionirajte se na svoj lični direktorijum.
- cd
- 2. Postavite vrednost promenljive umask tako da vlasnik ima prava “rw-” a grupa i
- ostali “r--” za sve datoteke koje korisnik kreira.
- umask 022
- 3. Kreirajte datoteku
- touch betatest
- 4. Proverite prava pristupa
- ls -l betatest
- 5. Koristeći chmod u simboličkom režimu
- – dodajte grupi i ostalima pravo upisa:
- chmod go+w betatest
- ls -l betatest
- – oduzmite kategoriji others sva prava:
- chmod o-rwx betatest
- ls -l betatest
- – dodajte kategorijama owner i group pravo izvršavanja:
- 9
- Contrôle d'accès du système de fichiers
- chmod ug+x betatest
- ls -l betatest
- – dajte svima sva prava:
- chmod a+rwx betatest
- ls -l betatest
- 6. Obrišite datoteku
- rm betatest
- 3.2. Promena pristupnih prava (numerički režim)
- Opšti oblik komande:
- chmod [-R] mode filename
- Parametri su sledeći:
- • mode su nova pristupna prava, navode se kao tri cifre (0-7) koje predstavljaju
- redom pristupna prava za vlasnika, grupu i ostatak sveta.
- • filename je ime objekta kome se menjaju prava
- • parametar -R inicira promenu pristupnih prava direktorijuma i svih njegovih
- objekata
- Primer:
- Datoteka myfile trenutno ima postavljena prava 666 (rw-rw-rw-).
- ls -l myfile
- -rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile
- 1. Dodela prava “rwx” korisniku i “r-x” grupi i ostatku sveta.
- chmod 755 myfile
- ls -l myfile
- -rwxr-xr-x 1 nm nm 0 dec 23 15:25 myfile
- Aktivnost 6: promena pristupnih prava (numerički režim)
- 1. Pređite na home direktorijum:
- cd
- 2. Kreirajte na svom home direktorijumu novu datoteku:
- touch betatest
- 10
- Contrôle d'accès du système de fichiers
- 3. Proverite prava pristupa:
- ls -l betatest
- 4. Postavite svima pravo čitanja i izvršavanja:
- chmod 555 betatest
- ls -l betatest
- 5. Dajte svima sva prava u odnosu na datoteku betatest:
- chmod 777 betatest
- ls -l betatest
- 6. Dajte vlasniku sva prava, grupi prava “r” i “w”, a ostalima ništa:
- chmod 760 betatest
- ls -l betatest
- 7. Obrišite datoteku:
- rm betatest
- 3.3. Promena vlasnika i grupe
- Opšti oblici komandi za promenu vlasništva i grupe:
- chown [-R] user filename (promena vlasnika)
- chgrp [-R] group filename (promena grupe)
- Parametri su sledeći:
- • user i group su novi vlasnik i nova grupa
- • filename je ime objekta kome se menja vlasništvo
- • Parametar -R inicira promenu vlasništva direktorijuma i svih njegovih objekata
- NAPOMENA: U Ubuntu Linuxu, chown i chgrp mogu da koriste samo sudo-eri i root
- korisnik (ukoliko mu je dodeljena lozinka). Drugim rečima, unosi se prvo sudo pa ime
- komande.
- Primer:
- Vlasnik datoteke myfile je korisnik “nm”, a datoteka je dodeljena grupi “staff”, kao što
- se vidi iz listinga komande:
- ls -l myfile
- -rw-r--r-- 1 nm staff 0 Apr 28 12:07 myfile
- 11
- Contrôle d'accès du système de fichiers
- 1. Sledeća komanda dodeljuje datoteku korisniku “jsmith”. NAPOMENA: sudo zahteva
- da unesete svoju lozinku!
- sudo chown jsmith myfile
- Provera:
- ls -l myfile
- -rw-r--r-- 1 jsmith staff 0 Apr 28 12:07 myfile
- 2. Sledeća komanda dodeljuje datoteku grupi “users”.
- sudo chgrp users myfile
- Provera:
- ls -l myfile
- -rw-r--r-- 1 jsmith users 0 Apr 28 12:07 myfile
- Aktivnost 7: promena vlasnika
- 1. Pređite na home direktorijum:
- cd
- 2. Kreirajte novu datoteku:
- touch myfile
- 3. Kreirajte korisnika “korisnik2” iz grafičkog okruženja ili jednostavno zadajte sledeću
- komandu:
- sudo adduser korisnik2
- Napomena: sudo traži da unesete svoju lozinku!
- 4. Probajte da poklonite datoteku drugom korisniku:
- chown korisnik2 myfile
- 5. Da li ste uspeli to da uradite? Proverite komandom
- ls -l myfile
- 6. Probajte da kao administrator, upotrebom mehanizma sudo, dodelite tu datoteku
- drugom korisniku:
- sudo chown korisnik2 myfile
- 7. Da li ste sada uspeli to da uradite? Proverite komandom
- ls -l myfile
- 8. Obrišite datoteku:
- sudo rm myfile
- 12
- Contrôle d'accès du système de fichiers
- 4. Uticaj kontrole pristupa na rad sa datotekama
- Vlasništvo i pristupna prava određuju da li ćete uspeti da izvršite komandu za
- kopiranje, pomeranje i brisanje datoteka i direktorijama, da izvršite datoteku, kreirate
- direktorijum I izlistate njegov sadržaja. Za to kontrola pristupa i služi!
- 4.1. Kopiranje datoteka
- Da bi korisnik mogao da iskopira datoteku <file> iz direktorijuma <dir1> u
- direktorijum <dir2> potrebno je da ima sledeća dva prava:
- • pravo r nad datotekom <file> (čime se omogućava čitanje sadržaja originalne
- datoteke).
- • pravo w nad direktorijumom <dir2> (čime se omogućava izmena sadržaja
- odredišnog direktorijuma, odnosno kreiranje nove datoteke).
- Ovaj skup prava je minimalan - neke varijante UNIX sistema zahtevaju dodatna prava.
- Dovoljni uslovi za kopiranje fajla na svim UNIX sistemima uključuju potrebne uslove i
- pravo x nad direktorijumima <dir1> i <dir2>.
- Šta se dešava sa kopijama?
- • vlasnik kopije je korisnik koji je pokrenuo komandu cp,
- • datoteka se dodeljuje primarnoj grupi korisnika koji je pokrenuo komandu cp
- (grupa koja je navedena u datoteci /etc/passwd za datog korisnika),
- • pristupna prava kopije su najčešće sužena u odnosu na pristupna prava
- originala, a dobijaju se logičkim množenjem bitova pristupnih prava originala i
- vrednosti promenljive umask. Na primer: ako su pristupna prava originalne
- datoteke 666, a promenljiva umask 002, pristupna prava kopije biće 664.
- 4.2.Pomeranje datoteka
- Da bi korisnik mogao da pomeri datoteku <file> iz direktorijuma <dir1> u direktorijum
- <dir2>, potrebno je da ima sledeća prava:
- • pravo r nad datotekom <file> (čime se omogućava čitanje sadržaja originalne
- datoteke),
- • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
- 13
- Contrôle d'accès du système de fichiers
- izvorišnog direktorijuma, odnosno brisanje datoteke),
- • pravo w nad direktorijumom <dir2> (čime se omogućava izmena sadržaja
- odredišnog direktorijuma, odnosno kreiranje nove datoteke).
- Dovoljni uslovi za pomeranje datoteka na svim UNIX sistemima uključuju potrebne
- uslove i pravo x nad direktorijumima <dir1> i <dir2>.
- 4.3. Promena imena datoteke
- Da bi korisnik mogao da promeni ime datoteke <file> koja se nalazi u direktorijumu
- <dir1>, potrebno je da ima:
- • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
- izvorišnog direktorijuma, odnosno promena imena datoteke).
- Dovoljni uslovi za promenu imena datoteka na svim UNIX sistemima osim ovog prava
- uključuju i pravo x nad direktorijumom <dir1>.
- 4.4. Brisanje datoteke
- Da bi korisnik mogao da obriše datoteku <file> iz direktorijuma <dir1>, potrebno je da
- ima:
- • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
- direktorijuma, odnosno brisanje datoteke).
- Dovoljni uslovi za brisanje datoteka na svim UNIX sistemima osim ovog prava uključuju
- i pravo x nad direktorijumom <dir1>.
- Aktivnost 8: pristupna prava originala i kopije – uticaj promenljive umask
- 1. Kreirajte jednu datoteku u svom home direktorijumu
- touch original
- 2. Postavite prava pristupa za datoteku “original” na 775
- chmod 775 original
- 3. Postavite vrednost promenljive umask tako da odseca prava write i execute
- kategorijama group i others sledećom komandom
- umask 033
- 4. Iskopirajte datoteku
- cp original kopija
- 14
- Contrôle d'accès du système de fichiers
- 5. Pogledajte šta piše u i-nodeovima originala i kopije
- ls -l original kopija
- Uporedite pristupna prava originala i kopije. Koji su bitovi ukinuti ?
- 6. Postavite vrednost promenljive umask na vrednost 022
- umask 022
- 7. Obrišite obe datoteke:
- rm original kopija
- Aktivnost 9: vlasnički odnosi originala i kopije
- 1. Pređite na svoj home direktorijum
- cd
- Proverite vlasničke odnose datoteke /etc/hosts
- ls -l /etc/hosts
- Kreirajte kopiju datoteku u svom home direktorijumu
- cp /etc/hosts myhosts
- Proverite vlasničke odnose originala i kopije
- ls - l /etc/hosts myhosts
- Kojoj grupi je dodeljena datoteka myhosts?
- Koja je primarna grupa korisnika “korisnik” koji je inicirao kopiranje? U listingu
- pronađite korisnika I proverite koja je grupa. Viewer “less” napuštate tasterom “q”:
- less /etc/hosts
- Obrišite datoteku myhosts
- rm hosts
- Aktivnost 10: potrebni i dovoljni uslovi za kopiranje datoteke
- Odredite potrebne i dovoljne uslove da nešto iskopirate.
- Kreirajte dva direktorijuma u svom home direktorijumu:
- mkdir dir1 dir2
- Kreirajte datoteku u direktorijumu dir1:
- cp /etc/passwd dir1/file1
- 1. Ako su sva prava data, kopiranje je izvodljivo:
- - Dodelite svima sva prava nad direktorijumima:
- chmod 777 dir1 dir2
- - Dodelite svima sva prava nad datotekom:
- chmod 777 dir1/file1
- 15
- Contrôle d'accès du système de fichiers
- - Probajte da iskopirate datoteku
- cp dir1/file1 dir2/file2
- Ovog puta prolazi sigurno, jer su vam data sva prava.
- - Obrišite kopiju:
- rm dir2/file2
- 2. Ukidajte redom prava nad datotekom dir1/file1 i utvrdite koja su vam prava
- neophodna nad izvorišnom datotekom da bi ste mogli da izvršite kopiranje:
- 2.1. pravo čitanja “r” izvorišne datoteke:
- - ukinite pravo “r”:
- chmod u-r dir1/file1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “r”
- chmod u+r dir1/file1
- 2.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u
- izvorišnu datoteku.
- - ukinite pravo “w”:
- chmod u-w dir1/file1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “w”
- chmod u+w dir1/file1
- 2.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
- izvorišne datoteke.
- - ukinite pravo “x”:
- 16
- Contrôle d'accès du système de fichiers
- chmod u-x dir1/file1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “x”
- chmod u+w dir1/file1
- 3. Ukidajte redom prava nad direktorijumom dir1 i utvrdite koja su vam prava
- neophodna nad direktorijumom u kome se nalazi izvorišna datoteka da bi ste mogli da
- izvršite kopiranje:
- 3.1 pravo čitanja “r” izvorišnog direktorijuma
- - ukinite pravo “r”
- chmod u-r dir1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “r”
- chmod u+r dir1
- 3.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u izvorišni
- direktorijum.
- - ukinite pravo “w”
- chmod u-w dir1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- 17
- Contrôle d'accès du système de fichiers
- - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “w”
- chmod u+w dir1
- 3.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
- izvorišnog direktorijuma.
- - ukinite pravo “x”
- chmod u-x dir1
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “x”
- chmod u+w dir1
- 4. Ukidajte redom prava nad direktorijumom dir2 i utvrdite koja su vam prava
- neophodna nad odredišnim direktorijumom da bi ste mogli da izvršite kopiranje:
- 4.1 pravo čitanja “r” odredišnog direktorijuma
- - ukinite pravo “r”
- chmod u-r dir2
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “r”
- chmod u+r dir2
- 4.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u
- odredišni direktorijum.
- - ukinite pravo “w”
- chmod u-w dir2
- - probajte da iskopirate:
- 18
- Contrôle d'accès du système de fichiers
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “w”
- chmod u+w dir2
- 4.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
- odredišnog direktorijuma.
- - ukinite pravo “x”
- chmod u-x dir2
- - probajte da iskopirate:
- cp dir1/file1 dir2/file2
- - da li je kopiranje uspešno? proverite komandom:
- ls dir2
- - ukoliko je kopiranje uspešno, obrišite kopiju
- rm dir2/file2
- - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
- - dodelite ponovo sebi pravo “x”
- chmod u+x dir2
- 5. Zapišite sva prava koja su vam neophodna nad izvorišnom datotekom,
- direktorijumom u kojem se ona nalazi i odredišnim direktorijumom da bi ste mogli da
- izvršite kopiranje datoteke.
- 6. Obrišite direktorijume dir1 i dir2:
- rm -rf dir1 dir2
- Aktivnost 11: potrebni uslovi za pomeranje datoteke
- Odredite potrebne i dovoljne uslove da nešto pomerite.
- Kreirajte dva direktorijuma u svom home direktorijumu:
- mkdir dir1 dir2
- Kreirajte datoteku u direktorijumu dir1:
- cp /etc/passwd dir1/file1
- Dodelite svima sva prava nad direktorijumima:
- chmod 777 dir1 dir2
- 19
- Contrôle d'accès du système de fichiers
- Dodelite svima sva prava nad datotekom:
- chmod 777 dir1/file1
- Koristeći sličan postupak kao u zadatku 11. odredite prava koja su potrebna da bi
- korisnik pomerio datoteku. Potrebno je da ispitate prava koja imate nad izvorišnim i
- odredišnim direktorijumom i samom datotekom! SAMOSTALNO ODRADITE!
- Kada završite, obrišite direktorijume dir1 i dir2:
- rm -rf dir1 dir2
- Aktivnost 12: potrebni uslovi za brisanje datoteke
- Odredite potrebne i dovoljne uslove da nešto obrišete.
- Kreirajte direktorijum u svom home direktorijumu
- mkdir dir1
- Kreirajte datoteku u tom poddirektorijumu
- cp /etc/passwd dir1/file1
- Dodelite svima sva prava nad direktorijumom:
- chmod 777 dir1
- Dodelite svima sva prava nad datotekom:
- chmod 777 dir1/file1
- Koristeći sličan postupak kao u zadatku 11. odredite prava koja su potrebna da bi
- korisnik obrisao datoteku. Potrebno je da ispitate prava koja imate nad direktorijumom
- u kome se datoteka nalazi. SAMOSTALNO ODRADITE!
- Kada završite, obrišite direktorijum dir1:
- rm -rf dir1
- 5. Sticky bit i SUID
- 5.1. Sticky bit (t)
- Na javno dostupnim direktorijumima (kao što je /tmp) tipična prava pristupa su 777.
- • Problem: svako može da briše šta god hoće u tom direktorijumu, pa i fajlove
- drugog korisnika.
- • Rešenje: Postavljanjem sticky bita za direktorijum uvodi se ograničenje da svaki
- korisnik može obriše samo svoje datoteke u tom direktorijumu (datoteke čiji je
- on vlasnik).
- 20
- Contrôle d'accès du système de fichiers
- NAPOMENA: Da bi se postigao ovaj efekat sticky bit se dodaje isključivo direktorijumu.
- Ako se doda datoteci ima drugu primenu!
- Sticky bit se postavlja/ukida na dva načina:
- 1. dodelom/oduzimanjem prava “t” svim vlasničkim kategorijama u simboličkom
- režimu:
- ls -l public_dir
- -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir1
- postavlja se sticky bit:
- chmod +t public_dir1
- ls -l public_dir1
- -rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir1
- ukida se sticky bit:
- chmod -t public_dir1
- ls -l public_dir1
- -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir1
- 2. navođenjem cifre “1” (ukida se cifrom “0”) pre pristupnih prava u oktalnom režimu
- ls -l public_dir2
- -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir2
- postavlja se sticky bit:
- chmod 1777 public_dir2
- ls -l public_dir2
- -rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir2
- ukida se sticky bit:
- chmod 0777 public_dir2
- ls -l public_dir2
- -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir2
- Aktivnost 13: sticky bit
- NAPOMENA: Kreiranje korisnika I komanda su se detaljno rade na sledećoj vežbi.
- Međutim, za sada su neophodne za ilustraciju sticky bit-a. Ukratko ako navedete
- komandu
- su george
- sistem će od vas zatražiti da unesete lozinku korisnika george. Nakon toga vi
- 21
- Contrôle d'accès du système de fichiers
- privremeno preuzimate njegov UID. Kada želite da preuzmete svoj stari identitet,
- zadajete komandu:
- exit
- 1. Kao root korisnik kreirajte jedan direktorijum:
- sudo mkdir /sticker
- 2. Dajte svima sva prava nad njim:
- sudo chmod 777 /sticker
- 3. Postavite sticky bit
- sudo chmod +t /sticker
- 4. Proverite šta ste napravili:
- ls -ld /sticker
- Trebalo bi da dobijete nešto slično ovome:
- drwxrwxrwt 2 root staff 4096 dec 23 15:25 sticker
- Uočite slovo t na kraju pristupnih prava.
- 5. Kreirajte dva korisnika iz grafičkog okruženje:
- • korisničko ime: kor1
- • lozinka: password1
- • korisničko ime: kor2
- • lozinka: password2
- 6. Preuzmite akreditive korisnika kor1:
- su – kor1
- Ovde navodite lozinku korisnika kor1, dakle “password1”
- Kreirajte jednu datoteku na direktorijumu /sticker:
- touch /sticker/myfile
- Preuzmite stare akreditive
- exit
- 7. Preuzmite akreditive korisnika kor2:
- su – kor2
- Probajte da obrišete datoteku /sticker/myfile:
- rm /sticker/myfile
- Da li je brisanje uspelo ? Da li bi uspelo da nema t flega? Ojasnite.
- Preuzmite stare akreditive:
- exit
- 22
- Contrôle d'accès du système de fichiers
- 8. Obrišite sa akreditivnima root korisnika direktorijum /sticker:
- sudo rm -rf /sticker
- 5.2. SUID (s)
- Ovi bitovi služe da drugi korisnici mogu da izvršavaju datoteku sa privilegijama
- vlasnika, bez promene naloga.
- SUID bit se postavlja/uklanja komandom chmod, tako što se kategoriji vlasnika
- dodaje/oduzima pravo “s”:
- chmod u+s myexploit
- ls -l myexploit
- -rwsr-xr-x 1 root staff 2344 dec 23 15:25 myexploit
- Na mestu prava “x” vlasnika nalazi se oznaka “s” programa.
- U oktalnom formatu SUID pravo se dodaje navođenjem cifre 4 pre pristupnih prava
- aukida se navođenjem cifre 0. :
- chmod 4755 fajl
- U retkim situacijama se na mestu SUID prava umesto malog s , koje pokazuje da je sve
- u redu sa dozvolama, može se pojaviti veliko S. To znači da je SUID pravo podešeno ali
- da vlasnik iz nekog razloga nema x pravo. To znači da da ni SUID pravo neće imati
- nikakvog smisla.
- VAŽNA NAPOMENA: Jako je glupo davati SUID komandama čiji je vlasnik root a koje se
- mogu iskoristiti na destruktivan način – bilo namerno, bilo slučajno. S druge strane,
- zgodno je da npr komandama za arhiviranje ili update sistema zalepite SUID bit.
- Aktivnost 14: SUID
- 1. Otvorite terminal i prijavite se kao korisnik kor1:
- su - kor1
- Ovde navodite lozinku korisnika kor1, dakle “password1”
- - Pređite na home direktorijum
- cd
- - Kreirajte jednu datoteku
- cp /bin/cp mycopy1
- - Dajte svima pravo izršavanja
- 23
- Contrôle d'accès du système de fichiers
- chmod a+x mycopy1
- - Postavite SUID bit
- chmod u+s mycopy1
- - Proverite šta ste uradili
- ls -l mycopy1
- Objasnite čiji se šta se dešava ako neki korisnik pokrene datoteku mycopy1. Ovo je
- kopija datoeke cp, dakle to je program za kopiranje datoteka.
- 2. Iskopirajte kao drugi korisnik neku datoteku u direktorijum /tmp koristeći ovu
- komandu:
- - Preuzmite identitet korisnika kor2
- su – kor2
- - Ovde navodite lozinku korisnika kor2, dakle “password1”
- - Kopiranje nešto pomoću mycopy1
- /home/korisnik1/mycopy1 /etc/passwd /tmp/kopija
- 3. Pogledajte kopiju i analizirajte vlasništvo
- ls -l /tmp/kopija
- Zaključite sa čijim je akreditivima pokrenuta komanda mycopy1. To možete da odredite
- tako što ćete proveriti ko je vlasnik datoteke /tmp/kopija.
- ls -l /tmp/kopija
- 4. Obrišite datoteku /tmp/kopija
- rm /tmp kopija
- 24
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement