Advertisement
garnettkg

os1 vezbe

Apr 14th, 2016
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 97.88 KB | None | 0 0
  1. Visoka škola elektrotehnike i računarstva strukovnih
  2. studija
  3. Beograd
  4. OPERATIVNI SISTEMI 1
  5. VEŽBA 1
  6. Uvod
  7. Sadržaj:
  8. 1. Uvodne napomene
  9. 2. Upoznavanje sa radnim okruženjem operativnog sistema Ubuntu Linux
  10. 3. Prijavljivanje na Moodle sistem za e-učenje
  11. 4. Kreiranje virtuelnih mašina
  12. 5. Upotreba virtuelnih mašina
  13. 6. Upoznavanje sa komandnom linijom
  14. 7. Objašnjenje mehanizma "sudo"
  15. Nemanja Maček
  16. Borislav Đorđević
  17. Borislav Krneta
  18. Beograd, 2015
  19. Uvod
  20. 1. Uvodne napomene
  21. Profesor:
  22. • Borislav Đorđević, bora@impcomputers.com
  23. Asistenti:
  24. • Nemanja Maček, nmacek@viser.edu.rs
  25. • Borislav Krneta, borak@viser.edu.rs
  26. 1. Prisustvo na vežbama
  27. • Prisustvo na vežbama ne donosi poene za formiranje konačne ocene ali je uslov za
  28. izlazak na ispit.
  29. • Uslov stičete ukoliko prisustvujete na najmanje 80% vežbi. Na primer, ako u semestru
  30. ima deset vežbi, potrebno je da odradite najmanje 8.
  31. • Ukoliko ste zaposleni ili iz nekih drugih razloga sprečeni da dolazite na vežbe, molimo vas
  32. da nam to unapred najavite (npr. donesite potvrdu o zaposlenju). Ukoliko odsustvo u
  33. prvim terminima "najavite" pred kraj semestra, izostanci neće biti opravdani.
  34. 2. Odbrana vežbi
  35. • Uspešno odbranjene vežbe su uslov za izlazak na ispit.
  36. • Vežbe se brane polaganjem dva testa sa više ponuđenih odgovora, koji se rade na
  37. računaru u terminima vežbi u toku semestra.
  38. • Vežbe su odbranjene ukoliko na oba testa osvojite najmanje 50% poena.
  39. • Pred svaku odbranu vežbi organizuje se pripremni test sa sličnim pitanjima.
  40. 3. Ispit
  41. • Ispit se radi na računaru u vidu testa sa više ponuđenih odgovora.
  42. • Ukoliko želite, ispit možete da položite i preko dva kolokvijuma.
  43. • Pre svakog kolokvijuma se organizuje pripremni test sa sličnim pitanjima.
  44. • Ispit je položen ukoliko (1) na ispitu osvojite najmanje 50% poena ili (2) na oba
  45. kolokvijuma osvojite najmanje 50% poena.
  46. 4. Formiranje ocene
  47. • Dve odbrane vežbi: 2 x 15 poena (ukupno 30)
  48. • Dva kolokvijuma: 2 x 35 poena (ukupno 70) ili ispit (70)
  49. • (ispit + dve odbrane vežbi) ili (dva kolokvijuma + dve odbrane vežbi) ∈ [0, 100]
  50. • 0-50 → 5, 51-60 → 6, 61-70 → 7, 71-80 → 8, 81-90 → 9, 91-100 → 10.
  51. 1
  52. Uvod
  53. 2. Upoznavanje sa radnim okruženjem operativnog sistema Ubuntu Linux
  54. Kada uključite računar, u tzv. boot manager-u (GRUB), odaberite Ubuntu Linux.
  55. Na sistem se prijavite svojim korisničkim imenom i lozinkom, na primer:
  56. • username: peranrt1202
  57. • password: jeronimo
  58. Nakon prijavljivanja pojavljuje se Gnome grafičko radno okruženje (slika 1).
  59. Slika 1. Radna površina
  60. • Sa leve strane radne površine nalazi se pokretačka linija. Na pokretačkoj liniji su
  61. poređane najčešće korišćene aplikacije (lična fascikla, Mozilla Firefox Web browser,
  62. aplikacije iz Libre Office paketa). Na vrhu pokretačke linije se nalazi alatka za
  63. pretraživanje: "poletnik" (pretraži računar i mesta na mreži), pomoću koje možete da
  64. pronađete dokumenta ili aplikacije na vašem sistemu.
  65. • Linija sa menijima trenutno aktivne aplikacije se, u podrazumevanom stanju, ne nalazi u
  66. okviru prozora date aplikacije. Ona je smeštena u glavnom meniju operativnog sistema
  67. koji se nalazi na vrhu radne površine, koji se prilagođava programu koji trenutno koristite.
  68. • U gornjem desnom uglu nalazi se indikator o mrežnim konekcijama, dugme za odabir
  69. rasporeda tastature, sat i dugme za odjavljivanje ili isključivanje računara.
  70. 2
  71. Uvod
  72. Programe pokrećete pritiskom na ikonicu:
  73. Nakon toga, dobijate pretraživač u kome je potrebno da uneste ključne reči. Nakon unosa
  74. ključnih reči, nude vam se rezultati pronađeni na osnovu ključnih reči (slika 2). Iz dijaloga vi
  75. odabirate program koji želite da pokrenete ili datoteku koju želite da otvorite.
  76. I
  77. Slika 2. Pretraživač programa, datoteka i mesta na mreži
  78. Ličnu fasciklu otvarate pritiskom na ikonicu:
  79. Nakon toga otvara se sadržaj lične fascikle (slika 3).
  80. Slika 3. Sadržaj lične fascikle
  81. 3
  82. Uvod
  83. Firefox pokrećete pritiskom na ikonicu:
  84. Nakon toga se otvara Web pretraživač. Do podešavanja pretraživača možete doći odabirom
  85. opcije "uređivanje → postavke" iz padajućeg menija ili na način prikazan na slici 4.
  86. Slika 4. Pristupanje podešavanjima Firefox-a
  87. Podešavanja vezana za mrežu (I PROXY!) nalaze se u kartici "Mreža" (slika 5).
  88. Slika 5. Podešavanja vezana za mrežu
  89. 4
  90. Uvod
  91. Proxy se podešava pritiskom na dugme "Postavke" u kartici "Mreža". Otvoriće se dijalog (slika 6)
  92. u kome možete da odaberete:
  93. • da li želite da Firefox ne koristite proxy,
  94. • da li želite da Firefox samostalno otkrije podešavanja proksija,
  95. • da li želite da Firefox koristi sistemska podešavanja, ili
  96. • da želite samostalno da navedete adresu i port proxy servera.
  97. Slika 6. Podešavanje proxy servera
  98. NAPOMENA: PRILIKOM POLAGANJA TESTOVA ZA ODBRANU VEŽBI, KOLOKVIJUMA I ISPITA,
  99. NEOPHODNO JE DA ODABERETE "Samostalno otkrivanje postavki proksija". UKOLIKO TO IZ NEKIH
  100. RAZLOGA NE RADI, isključite proksi.
  101. 5
  102. Uvod
  103. 3. Prijavljivanje na Moodle sistem za e-učenje
  104. Materijali sa vežbi i predavanja, kao i dodatna literatura nalaze se na Moodle sistemu za učenje.
  105. Moodle sistemu se pristupa na sledećoj lokaciji.
  106. • http://lectio.viser.edu.rs
  107. Najpre se na sistem prijavite sa svojim korisničkim imenom i lozinkom, kao što je prikazano na
  108. slici 7.
  109. Slika 7. Prijavljivanje na Moodle sistem za e-učenje
  110. U okviru Moodle sistema odaberite "Osnovne studije – klasične", zatim "Druga godina",
  111. "Operativni sistemi 1".
  112. Sistem će vas pitati za lozinku kursa. Unesite lozinku koju ćete dobiti na času od predmetnih
  113. saradnika.
  114. Na Moodle-u, u okviru sekcije "Operativni sistemi 1" se nalaze:
  115. • predavanja (prezentacije)
  116. • vežbe
  117. • dodatna dokumentacija (knjige koje delimo besplatno)
  118. • B. Đorđević, D. Pleskonjić, N. Maček: "Operativni sistemi UNIX и LINUX"
  119. • B. Đorđević, M. Carić, D. Pleskonjić, N. Maček: "GNU/Linux sistemsko
  120. programiranje"
  121. 6
  122. Uvod
  123. 4. Kreiranje virtuelnih mašina
  124. Vežbe radite na virtuelnim mašinama. Virtuelne mašine su gostujući operativni sistemi koji se
  125. izvršavaju na hypervisor-u koji simulira hardver. Vama su date administrativne privilegije za
  126. gostujući operativni sistem!
  127. Virtuelnu mašinu za potrebe kursa Operativni sistemi 1 kreirate na sledeći način:
  128. • Pokrenite Oracle VM VirtualBox pritiskom na odgovarajuću ikonicu (vidi sliku 2).
  129. • Otvoriće se "Oracle VM VirtualBox Manager" (slika 8).
  130. Slika 8. Oracle VM VirtualBox Manager
  131. • Pritisnite dugme "New". Otvoriće se dijalog "Create Virtual Machine". U dijalogu unesite
  132. sledeće podatke i pritisnite dugme "Next":
  133. • Name: OS-1
  134. • Type: Linux
  135. • Version: Ubuntu (64 bit)
  136. • U sledećem dijalogu potrebno je da virtuelnoj mašini dodelite odgovarajuću količinu (u
  137. našem slučaju 1GB) radne memorije. Upišite u polje 1024 ili pomerite klizač do te
  138. vrednosti (slika 9). Pritisnite dugme "Next".
  139. Slika 9. Dodela radne memorije virtuelnoj mašini
  140. 7
  141. Uvod
  142. • U sledećem koraku odabirate virtuelni hard disk koji mašina koristi. Odaberite opciju "Use
  143. an existing virtual hard drive" i pritisnite ikonicu uokvirenu crvenom bojom na slici 10.
  144. Slika 10. Odabir virtuelnog hard diska (1)
  145. • Otvara se dijalog "Please choose a virtual hard drive file". Odaberite datoteku "OS1.vdi"
  146. iz foldera "home/virtualbox/OS1" (slika 11) i pritisnite dugme "Otvori".
  147. Slika 11. Odabir virtuelnog hard diska (2)
  148. • Nakon toga, u dijalogu „Create Virtual Machine“ pritisnite dugme "Create"
  149. • Virtuelna mašina nije još uvek spremna za rad – potrebno je načiniti još nekoliko
  150. podešavanja (dodela memorije video adapteru i korišćenje diferencijalnih diskova)
  151. • U "Oracle VM VirtualBox Manager" prozoru pritisnite dugme "Settings". Otvoriće se
  152. dijalog "OS-1 – Settings" (slika 12).
  153. 8
  154. Uvod
  155. Slika 12. Podešavanja virtuelne mašine
  156. • Odaberite karticu "Display" i dodelite video adapteru memoriju tako što ćete "Video
  157. Memory" postaviti na vrednost 128MB (slika 13).
  158. Slika 13. Dodela memorije video adapteru
  159. • U kartici "Storage" odaberite "OS1.VDI" i pritisnite dugme da uklonite disk (slika 14).
  160. Slika 14. Uklanjanje osnovnog diska
  161. 9
  162. Uvod
  163. • Osnovni disk (nad kojim vi nemate pravo upisa niti izmene podataka) je uklonjen. Sada je
  164. potrebno da mašini dodelite diferencijalni disk (tzv. "snapshot"), koji predstavlja razliku u
  165. odnosu na osnovni. Vama je dato pravo upixy nad diferencijalnim diskom.
  166. • Pritisnite desnim dugmetom miša na "Controller: SATA" i odaberite "Add Hard Disk" ili
  167. odaberite "Controller: SATA" i pritisnite na zaokruženo dugme (slika 15).
  168. Slika 15. Dodavanje diferencijalnog diska (1)
  169. • Otvoriće se dijalog "VirtualBox – Question" (slika 16). U dijalogu pritisnite dugme "Choose
  170. existing disk".
  171. Slika 16. Dodavanje diferencijalnog diska (2)
  172. • U dijalogu "Please choose a virtual hard drive file" odaberite datoteku jednu od
  173. ponuđenih datoteka tipa "os1_gX.vdi" i pritisnite dugme "Otvori".
  174. NAPOMENA: DIFERENCIJALNI DISKOVI SU KREIRANI TAKO DA SVAKI STUDENT KORISTI
  175. SVOJ DISK NA SVOM RAČUNARU. PRE NEGO ŠTO GA ODABERETE, PITAJTE PREDMETNE
  176. SARADNIKE KOJU DATOTEKU TREBATE DA KORISTITE!
  177. • U dijalogu "OS-1 – Settings" pritisnite dugme OK.
  178. • Virtuelna mašina je kreirana i spremna za rad.
  179. 10
  180. Uvod
  181. 5. Upotreba virtuelnih mašina
  182. Pokrenite virtuelnu mašinu "OS-1" tako što ćete je odabrati u prozoru "Oracle VM VirtualBox
  183. Manager" i pritisnuti dugme start.
  184. Pokrenuta virtuelna mašina je prikazana na slici 17.
  185. Slika 17. Virtuelna mašina na kojoj se izvršava Ubuntu Linux kao gostujući operativni sistem
  186. Na sistem se prijavite sa korisničkim imenom "korisnik" i lozinkaom "password".
  187. Terminal u okviru virtuelne mašine pokrećete pritiskom na ikonicu:
  188. Terminal je, najjednostavnije rečeno "nešto što čeka da vi preko tastature unesete komande
  189. nakon kojih će on eventualno prikazati rezultat izvršenja istih". Prikazan je na slici 18.
  190. Slika 18. Terminal
  191. 11
  192. Uvod
  193. Virtuelnu mašinu ne gasite NASILNO, zatvaranjem VirtualBox Managera!
  194. Virtuelna mašina se gasi odabirom opcije "isključi" (slika 20a) i pritiskom na odgovarajuće
  195. dugme (slika 20b).
  196. (a) (b)
  197. Slika 20. Gašenje virtuelne mašine
  198. 12
  199. Uvod
  200. 6. Upoznavanje sa komandnom linijom
  201. Pokrenite virtuelnu mašinu i prijavite se kao "korisnik" sa lozinkom "password".
  202. Pokrenite terminal.
  203. • Pokušajte da zadate redom sledeće komande u konzoli:
  204. pwd
  205. ls -l /etc
  206. mount
  207. cat /etc/passwd
  208. uname -a
  209. Komandni interpreter je proces koji obavlja sledeće funkcije u cilju obezbeđivanja interfejsa
  210. između korisnika i sistema: interpretaciju komandne linije, pokretanje programa, redirekciju
  211. ulaza i izlaza, povezivanje komandi u pipeline, zamenu imena datoteka.
  212. Tekst unet u shell prompt naziva se komandna linija (command line), čiji je opšti oblik:
  213. $ command [opcije] [argumenti]
  214. gde je:
  215. • $ (ili #) odzivnik (prompt) i prikazuje se svaki put kad je shell spreman da od korisnika
  216. prihvati novu komandu. KADA ZADAJETE KOMANDE OVO NE UNOSITE!
  217. • command može biti interna komanda (ugrađena u shell) ili eksterna (realizovana kao
  218. poseban program koji se nalazi u sistemskoj putanji).
  219. • opcije i argumenti su parametri koje shell prenosi komandi, pri čemu su argumenti
  220. najčešće obavezni i predstavljaju ime neke datoteke, direktorijuma, korisnika ili, na
  221. primer, identifikator procesa.
  222. Ime komande, opcije i argumenti su osetljivi na velika i mala slova i razdvajaju se razmakom.
  223. Primeri kombinovanja opcija i argumenata su:
  224. • free - samo komanda
  225. • df /dev/hda1 - komanda (fd) i argument (/dev/hda1)
  226. • cp 1.txt 2.txt - komanda (cp) i dva argumenta (1.txt i 2.txt)
  227. • date –u - komanda (date) i opcija (-u)
  228. • ls –l /etc - komanda (ls), opcija (-l) i argument (/etc)
  229. Nakon interpretacije komandne linije shell inicira izvršenje zadate komande. Ukoliko komanda
  230. nije interna (ugrađena u shell, poput komande cd) shell traži izvršnu datoteku koja odgovara
  231. imenu komande u direktorijumima navedenim u sistemskoj putanji (promenljiva $PATH).
  232. Nakon toga shell pokreće program i prosleđuje mu argumente i opcije navedene u komandnoj
  233. 13
  234. Uvod
  235. liniji.
  236. Ukoliko se izvršna datoteka nalazi u tekućem direktorijumu ili u nekom direktorijumu koji nije u
  237. sistemskoj putanji, ime komande se mora zadati sa putanjom:
  238. • ./myscript - pokretanje programa iz tekućeg direktorijuma
  239. • /usr/sbin/useradd - pokretanje programa iz /usr/sbin
  240. Više UNIX komandi mogu se navesti u istoj komandnoj liniji ukoliko su razdvojene znakom tačkazarez.
  241. • clear ; date - dve komande koje se izvršavaju jedna za drugom
  242. 6.1. Izmena pogrešno unete komande i navigacija po history-ju komandi
  243. Pokušajte da zadate redom sledeće komande u konzoli:
  244. • pwd
  245. • ls -l /etc
  246. • mount
  247. • cat /etc/passwd
  248. • uname -a
  249. Kursorskim strelicama na gore i dole krećete se kroz prethodno zadate komande.
  250. Pokušajte komandu cat /etc/passwd da izmenite u cat /etc/hosts a da pri tome ne kucate
  251. sve ponovo. Koristite kursore.
  252. 6.2. Datoteke
  253. U objekte UNIX sistema datoteka spadaju:
  254. • regularne datoteke,
  255. • direktorijumi (mogu se posmatrati kao specijalne datoteke koje sadrže objekte sistema
  256. datoteka, uključujući i poddirektorijume),
  257. • hard linkovi (alternativna imena datoteka) i simbolički linkovi (prečice)
  258. • blok i karakter specijalne datoteke (opisuju uređaje, odnosno upravljačke programe
  259. (drajvere) u kernelu).
  260. • imenovani pipeline (mehanizam za komunikaciju između procesa).
  261. Što se tiče imena datoteka,
  262. • dozvoljeni karakteri su: sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9), crta (-),
  263. 14
  264. Uvod
  265. underscore (_) i tačka (.).
  266. • Opcije UNIX komandi počinju jednom (-) ili dvema crtama (--), tako da imena datoteka ne
  267. treba počinjati tim karakterima.
  268. • Ukoliko ime objekta počinje tačkom (.), on se smatra skrivenim i može se videti pomoću
  269. komande ls samo ako je zadata s parametrom -a (all).
  270. • Zabranjeni karakteri su: ! “ ‘ ` ; : / \ $ < > ( ) [ ] { } ~
  271. Ukoliko se umesto imena direktorijuma u apsolutnoj putanji navede ~ korisnik će biti
  272. preusmeren na home direktorijum.
  273. Na primer, komanda less ~/myfile.txt prikazaće sadržaj datoteke myfile.txt koja se nalazi
  274. u home direktorijumu korisnika koji je komandu zadao, bez obzira na tekući direktorijum.
  275. 6.3. Kompletiranje imena datoteka
  276. Bourne-again shell sadrži mogućnost za kompletiranje imena datoteka. Korisnik može da unese
  277. samo nekoliko prvih karaktera imena datoteke, a zatim da pritisne karakter <Tab> kojim se
  278. naznačava shellu da završi ime datoteke. Na primer:
  279. • ls -l /etc/pas<Tab>
  280. • ls -l /etc/passwd
  281. Ukoliko shell u tekućem direktorijumu pronađe više od jedne datoteke čije ime počinje tim
  282. karakterima, korisnik će morati da unese još nekoliko karaktera u imenu datoteke, a zatim da
  283. ponovo pritisne taster <Tab>.
  284. 6.4. Navigacija po stablu
  285. Apsolutna putanja tekućeg direktorijuma može se prikazati pomoću komande pwd (print working
  286. directory):
  287. pwd
  288. /home/jsmith/mydoc
  289. Tekući direktorijum se menja komandom cd (change directory). Sintaksa komande je krajnje
  290. jednostavna:
  291. cd dir
  292. Argument dir je apsolutna ili relativna putanja direktorijuma na koji korisnik želi da se
  293. pozicionira. Na primer, ako se korisnik nalazi u direktorijumu /tmp/backup i zada komandu
  294. cd ../data, biće prebačen u direktorijum /tmp/data. Korisnik koji zada komandu bez argumenta
  295. 15
  296. Uvod
  297. dir biće premešten u home direktorijum.
  298. Primeri upotrebe komande cd su sledeći:
  299. • cd ~/data - prelazak na poddirektorijum data u home direktorijumu
  300. • cd .. - prelazak na roditeljski direktorijun
  301. • cd backup - prelazak na dir.backup u tekućem direktorijumu
  302. • cd / - prelazak na početak aktivnog stabla, tj. root direktorijum
  303. • cd /backup - prelazak na direktorijum backup u root direktorijumu
  304. 6.5. Listanje sadržaja direktorijuma
  305. Korisnik može na ekranu pomoću komande ls (list) prikazati sadržaj bilo kog direktorijuma
  306. aktivnog UNIX stabla. Sintaksa komande ls je:
  307. • ls [options] [dir][filespec]
  308. Komanda ls prikazaće na ekranu spisak objekata direktorijuma dir definisanih argumentom
  309. filespec. Argument filespec formira se pomoću džoker karaktera i nije obavezan. Ukoliko se
  310. ne navede, podrazumevaju se svi objekti u direktorijumu. Argument dir takođe nije obavezan, i
  311. ako se ne navede prikazuje se sadržaj tekućeg direktorijuma. Ukoliko se ne navedu dodatne
  312. opcije ls prikazuje samo imena objekata sortiranih u abecednom redu. Imena skrivenih objekata
  313. (objekti čije ime počinje tačkom) se ne prikazuju, a imena rezervnih kopija datoteka (datoteke
  314. čije se ime završava znakom ~) se prikazuju. Opcije:
  315. • -a - prikazuju se i imena skrivenih objekata
  316. • -d - prikazuje se kontekst direktorijuma umesto sadržaja
  317. • -i - prikazuje se i-node broj datoteke
  318. • -R - rekurzivno se prikazuje sadržaj svih poddirektorijuma
  319. • -h - veličine datoteka se prikazuju u čitljivom formatu (1K, 234M, 2G)
  320. • -l - prikazuju se i informacije upisane u i-node (prava pristupa, vlasnik, ...)
  321. • -1 - prikazuje samo imena objekata (jedno ime u jednoj liniji)
  322. Isprobajte sledeće primere i pokušajte da date objašnjenja:
  323. • ls -a
  324. • ls -l
  325. • ls -R /home
  326. • ls -dl /etc
  327. • ls -l /etc
  328. 16
  329. Uvod
  330. 6.6. Pregledanje sadržaja tekstualnih datoteka
  331. Sadržaj tekstualne datoteke najlakše se može pregledati pomoću programa cat i less. U
  332. zavisnosti od veličine datoteke korisnik će odrediti koji će program koristiti - ukoliko je datoteka
  333. kraća i može se prikazati na jednom ekranu, može se koristiti cat. U suprotnom, koristi se
  334. program less koji prikazuje datoteku sa pauzom nakon svakog punog ekrana.
  335. Na primer:
  336. cat /etc/resolv.conf
  337. nameserver 127.0.1.1
  338. search vets.edu.yu
  339. Komanda less pravi pauzu posle svakog ekrana i navigaciju po datoteci unapred i unazad.
  340. Nakon pokretanja programa less prikazuje prvi ekran sadržaja datoteke, a zatim se koriste
  341. interaktivne komande za navigaciju po sadržaju datoteke i napuštanje programa:
  342. • h ili H - prikazuje pomoć pri korišćenju interaktivnih komandi
  343. • <Space> - prikazuje sledeći ekran sadržaja datoteke
  344. • <DOWN> - prikazuje sledeću liniju teksta
  345. • <UP> - prikazuje prethodnu liniju teksta
  346. • <RIGHT> - horizontalno pomeranje ekrana udesno (ukoliko se ne koristi word wrap)
  347. • <LEFT> - horizontalno pomeranje ekrana ulevo (ukoliko se ne koristi word wrap)
  348. • q ili Q - napuštanje programa less.
  349. Primer:
  350. less /etc/passwd
  351. 17
  352. Uvod
  353. 7. Objašnjenje mehanizma "sudo"
  354. Na Linux-u, kao i na Windows-u, postoje dve osnovne vrste korisničkih naloga – administratorski
  355. i obični (korisnički). Obični korisnici imaju mnoge restrikcije – ograničen pristup podešavanjima,
  356. aplikacijama i objetkima fajl sistema, dok je administratoru dozvoljeno sve – na primer
  357. dodavanje (instalacija) aplikacija, pravljenje i brisanje naloga, pristup svim datotekama fajl
  358. sistema i slično.
  359. Na Linuxu se podrazumevani administratorski nalog zove root. Root korisnik može da uradi šta
  360. god poželi na sistemu, pa i da izvrši neke destruktivne operacije – na primer da obriše sistemske
  361. fajlove i time onemogući rad sistema.
  362. Na Ubuntu distribuciji se pri instalaciji kreira root nalog (na Windows-u je to nalog
  363. Administrator). Ovaj nalog postoji sa svim svojim pravima, ali je ONEMOGUĆEN – nije mu
  364. dodeljena lozinka – pa samim tim Linux ne dopušta da se pristupi sa ovim imenom. Ovo je
  365. možda neobično nekome ko je koristio Windows ili druge distribucije Linuxa. Kako je
  366. administracija moguća, ako je sistemu nemoguće pristupiti kao administrator – root? Filozofija je
  367. takva da se za administraciju sistema ne koristi neposredno root nalog, već da običan korisnik,
  368. kome su dodeljena prava za administrativne akcije, pomoću komande sudo (Super User DO,
  369. Switch User DO) preuzima funkciju administratora. Običan korisnik pokreće program koji zahteva
  370. root privilegije tako što zadaje komandu sudo i ime traženog programa.
  371. Zatim se od njega očekuje da unese lozinku, ali korisnik ne unosi root lozinku (ona i ne postoji),
  372. već SVOJU šifru za pristup sistemu (OBRATITE PAŽNJU - OVO JE BITAN DETALJ!)
  373. Korišćenjem sudo programa se postiže fleksibilnost u određivanju prava korisnika. Nije
  374. neophodno otkriti root lozinku korisniku kome treba da dodelimo ulogu administratora. Takođe je
  375. moguće privremeno ili stalno dodeljivanje određenih prava korisnicima jednostavnim
  376. dodavanjem i brisanjem iz sudoers konfiguracione datoteke. U kasnijim vežbama će biti
  377. detaljnije objašnjeno korišćenje programa sudo.
  378. 18
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385. Visoka škola elektrotehnike i računarstva
  386. strukovnih studija
  387. Beograd
  388. OPERATIVNI SISTEMI 1
  389. VEŽBA 2
  390. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  391. Sadržaj:
  392. 1. Podsetnik sa prethodne vežbe (komandni interpreter bash)
  393. 2. Navigacija po stablu i listanje sadržaja direktorijuma
  394. 3. Datoteke i tipovi datoteka
  395. 4. Upotreba džokera
  396. 5. Redirekcija ulaza i izlaza i povezivanje komandi u pipeline
  397. 6. Rad sa tekstualnim datotekama
  398. Nemanja Maček
  399. Borislav Đorđević
  400. Borislav Krneta
  401. Beograd, 2015
  402. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  403. 1. Podsetnik sa prethodne vežbe (komandni interpreter bash)
  404. Interfejs komandne linije (“Command Line Interface, CLI”), predstavlja tekstualni
  405. interfejs ka operativnom sistemu računara. U ovakvom načinu interakcije između
  406. korisnika i operativnog sistema, korisnik unosi komandu, koja se potom interpretira i
  407. izvršava na operativnom sistemu.
  408. CLI radno okruženje je na UNIX-olikim operativnim sistemima realizovano kao program
  409. poznat pod imenom “Terminal”. Ova aplikacija je zadužena da prihvata korisnikovu
  410. komandu, u obliku niza karaktera, i prosleđuje je ka komandnom interpreteru (“shell”).
  411. Komandni iterpreter prevodi ono što je korisnik kucao u instrukcije koje mogu biti
  412. izvršene na računaru od strane operativnog sistema. Rezultat izvršenja komande se
  413. takođe prikazuje u terminalu, bilo da se radi o rezultatu uspešno izvršene komande ili
  414. je u pitanju poruka o grešci prilikom izvršenja komande.
  415. Na osnovu prethodno navedenog, možemo zaključiti da je komandni interpreter proces
  416. koji obezbeđuje interfejs između korisnika i operativnog sistema. Najčešće korišten
  417. komandni iterpreter na Linux operativnom sistemu je “bash”.
  418. Tekst unet u “shell” prompt naziva se komandna linija (command line), čiji je opšti
  419. oblik:
  420. $ command [opcije] [argumenti]
  421. gde je:
  422. • $ (ili #) odzivnik (prompt) i prikazuje se svaki put kad je shell spreman da od
  423. korisnika prihvati novu komandu. KADA ZADAJETE KOMANDE OVO NE UNOSITE!
  424. • command može biti interna komanda (ugrađena u shell) ili eksterna (realizovana
  425. kao poseban program koji se nalazi u sistemskoj putanji).
  426. • opcije i argumenti su parametri koje shell prenosi komandi, pri čemu su
  427. argumenti najčešće obavezni i predstavljaju npr. ime datoteke, korisnika ili
  428. identifikator procesa.
  429. Ime komande, opcije i argumenti su osetljivi na velika i mala slova i razdvajaju se
  430. razmakom.
  431. Primeri kombinovanja opcija i argumenata su:
  432. free - samo komanda
  433. 1
  434. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  435. df /dev/hda1 - komanda (fd) i argument (/dev/hda1)
  436. cp 1.txt 2.txt - komanda (cp) i dva argumenta (1.txt i 2.txt)
  437. date –u - komanda (date) i opcija (-u)
  438. ls –l /etc - komanda (ls), opcija (-l) i argument (/etc)
  439. Nakon interpretacije komandne linije shell inicira izvršenje zadate komande. Ukoliko
  440. komanda nije interna (ugrađena u shell, poput komande cd) shell traži izvršnu
  441. datoteku koja odgovara imenu komande u direktorijumima navedenim u sistemskoj
  442. putanji (promenljiva $PATH). Nakon toga shell pokreće program i prosleđuje mu
  443. argumente i opcije navedene u komandnoj liniji.
  444. Ukoliko se izvršna datoteka nalazi u tekućem direktorijumu ili u nekom direktorijumu
  445. koji nije u sistemskoj putanji, ime komande se mora zadati sa putanjom:
  446. ./myscript - pokretanje programa iz tekućeg direktorijuma
  447. /usr/sbin/useradd - pokretanje programa iz /usr/sbin
  448. Više UNIX komandi mogu se navesti u istoj komandnoj liniji ukoliko su razdvojene
  449. znakom
  450. tačka-zarez.
  451. clear ; date - dve komande koje se izvršavaju jedna za drugom
  452. 1.1. Izmena pogrešno unete komande i navigacija po istoriji komandi
  453. Strelicama na gore i dole krećete se kroz prethodno zadate komande.
  454. Strelicama levo i desno krećete se kroz komandu koju pišete.
  455. Aktivnost 1.
  456. 1. Namerno otkucajte neku komandu pogrešno, na primer lls umesto ls:
  457. lls -l /etx
  458. Vratite komandu iz bafera (strelica na gore) pa je ispravite i izvršite:
  459. ls -l /etc
  460. 2. Zadajte redom sledeće komande u konzoli:
  461. cat /etc/passwd
  462. ls -l /etc
  463. pwd
  464. Komandu "cat /etc/passwd" izmenite u "cat /etc/hosts" – ne kucajte sve ponovo,
  465. koristite kursore!
  466. 2
  467. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  468. 1.2. Kompletiranje komandi i imena datoteka
  469. Bourne-again shell (bash) sadrži mogućnost za kompletiranje komandi ili imena
  470. datoteka. Korisnik može da unese samo nekoliko prvih karaktera imena datoteke, a
  471. zatim da pritisne karakter <Tab> kojim se naznačava komandnom interpreteru da
  472. završi ime datoteke. Ukoliko shell u tekućem direktorijumu pronađe više od jedne
  473. datoteke čije ime počinje tim karakterima, korisnik će morati da unese još nekoliko
  474. karaktera u imenu datoteke, a zatim da ponovo pritisne taster <Tab>.
  475. Aktivnost 2.
  476. 1. Otkucajte u komandnom interpreteru:
  477. cat /etc/pas
  478. Pritisnite taster <tab> i interpreter će kompletirati ime datoteke /etc/passwd
  479. 2. Sta znači ako tab ne radi? Ili se ime datoteke može dopuniti na više načina (ima više
  480. opcija), ili nema nijedne. Na primer, otkucajte:
  481. cat /etc/pa
  482. i pritisnite taster <tab>
  483. 1.3. Traženje pomoći za komande
  484. Komandna linija je radno okruženje koje korisnicima omogućava obavljanje poslova na
  485. veoma efikasan način, korišćenjem raznih komandi i njihovih opcija. Poznavanje svih
  486. komandi i njihovih opcija predstavlja veliki problem za korisnike koji tek počinju koristiti
  487. komandnu liniju. Čak i iskusniji korisnici Linux operativnog sistema ne pamte, niti ima
  488. smisla pamtiti, sve komande i sve opcije komandi. Jedna od osnovnih veština koju
  489. korisnik Linux operativnog sistema treba da nauči je kako da potraži pomoć za
  490. komande koje bi želeo da koristi.
  491. Osnovni način za dobijanje pomoći vezane za komande je pregled “man” stranice za
  492. datu komandu (“man” je skraćenica za “manual” (uputstvo)). Svaka komanda na Linux
  493. operativnom sistemu je opisana u odgovarajućoj “man” stranici. Pored opisa same
  494. komande i opcija koje su dostupne za istu, u velikom broju slučajeva je naveden i
  495. primer korišćenja date komande.
  496. Uputstvo za željenu komandu se može dobiti ukoliko u komandnoj liniji unesemo
  497. komandu “man” a argument je ime komande čije uputstvo za korišćenje želimo da
  498. 3
  499. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  500. vidimo. Ukoliko, recimo, želimo da vidimo “man” stranicu za komandu “ls” u
  501. komandnoj liniji bi smo uneli sledeće: “man ls”. Izgled uputstva za komandu ls je
  502. prikazan na sledećoj slici:
  503. Na većini Linux operativnih sistema za prikaz “man” stranica se koristi pregledač koji
  504. se zove “less”. Za navigaciju kroz uputstvo u okviru pregledača, koristite strelice
  505. naviše i naniže. Ukoliko želite da izađete iz pregledača “man” stranice pritisnite taster
  506. Q i dobićete ponovo odzivni znak. Kasnije u vežbi će biti pomenut pregledač “less”.
  507. Ovo nije jedini način da dobijete pomoć vezanu za korišćenje komandi i programa na
  508. Linux operativnom sistemu. Za pomoć vezanu za komande možete koristiti i “info”
  509. stranice za date komande a dodatnu pomoć za pojedine programe je moguće pronaći
  510. u direktorijumima /usr/share/doc ili /usr/doc u zavisnosti od distribucije Linux
  511. operativnog sistema.
  512. 4
  513. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  514. 2. Navigacija po stablu i listanje sadržaja direktorijuma
  515. Apsolutna putanja tekućeg direktorijuma može se prikazati pomoću komande pwd
  516. (print working directory), na primer:
  517. pwd
  518. /home/nmacek/mydoc
  519. Tekući direktorijum se menja komandom cd (change directory). Sintaksa komande je:
  520. cd dir
  521. Argument dir je apsolutna ili relativna putanja direktorijuma na koji korisnik želi da se
  522. pozicionira. Na primer, ako se korisnik nalazi u direktorijumu /tmp/backup i zada
  523. komandu
  524. cd ../data, biće prebačen u direktorijum /tmp/data. Korisnik koji zada komandu bez
  525. argumenta dir biće premešten u home direktorijum.
  526. Primeri upotrebe komande cd su sledeći:
  527. cd - prelazak na lični direktorijum
  528. cd ~/data - prelazak na poddirektorijum data u ličnom direktorijumu
  529. cd .. - prelazak na roditeljski direktorijun
  530. cd backup - prelazak na direktorijum backup u tekućem direktorijumu
  531. cd / - prelazak na početak aktivnog stabla, tj. root direktorijum
  532. cd /backup - prelazak na direktorijum backup u root direktorijumu
  533. Aktivnost 3.
  534. 1. Pozicionirajte se na vaš lični (home) direktorijum i proverite gde ste pozicionirani:
  535. cd
  536. pwd
  537. 2. Pozicionirajte se na roditeljski direktorijum i proverite gde ste pozicionirani:
  538. cd ..
  539. pwd
  540. 3. Pozicionirajte se na direktorijum /etc i proverite gde ste pozicionirani:
  541. cd /etc
  542. pwd
  543. 4. Pozicionirajte se na direktorijum /usr upotrebom relativne putanje:
  544. cd ../usr
  545. pwd
  546. 5
  547. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  548. 2.1. Listanje sadžaja direktorijuma
  549. Korisnik može na ekranu pomoću komande ls (list) prikazati sadržaj bilo kog
  550. direktorijuma aktivnog UNIX stabla. Sintaksa komande ls je:
  551. ls [options] [dir][filespec]
  552. Komanda ls prikazaće na ekranu spisak objekata direktorijuma dir definisanih
  553. argumentom filespec. Argument filespec formira se pomoću džoker karaktera i nije
  554. obavezan. Ukoliko se ne navede, podrazumevaju se svi objekti u direktorijumu.
  555. Argument dir takođe nije obavezan, i ako se ne navede prikazuje se sadržaj tekućeg
  556. direktorijuma. Ukoliko se ne navedu dodatne opcije ls prikazuje samo imena objekata
  557. sortiranih u abecednom redu. Imena skrivenih objekata (objekti čije ime počinje
  558. tačkom) se ne prikazuju, a imena rezervnih kopija datoteka (datoteke čije se ime
  559. završava znakom ~) se prikazuju. Opcije:
  560. • -a - prikazuju se i imena skrivenih objekata
  561. • -d - prikazuje se kontekst direktorijuma umesto sadržaja
  562. • -i - prikazuje se i-node broj datoteke
  563. • -R - rekurzivno se prikazuje sadržaj svih poddirektorijuma
  564. • -h - veličine datoteka se prikazuju u čitljivom formatu (1K, 234M, 2G)
  565. • -l - prikazuju se i informacije upisane u i-node (prava pristupa,
  566. vlasnik, ...)
  567. • -1 - prikazuje samo imena objekata (jedno ime u jednoj liniji)
  568. Primeri:
  569. 1. prikazivanje imena svih (i skrivenih) datoteka tekućeg direktorijuma
  570. ls -a
  571. . .alias .bash_profile .cshrc d1 f2
  572. .. .bash_history .bashrc .gnupg f1 l1
  573. 2. "long listing"
  574. ls -l
  575. drwxr-xr-x 2 nmacek nmacek 4096 Sep 21 d1
  576. -rw-r--r-- 1 nmacek nmacek 315 Sep 21 f1
  577. -rw-r--r-- 1 nmacek nmacek 4125 Sep 21 f2
  578. lrwxrwxrwx 1 nmacek nmacek 2 Sep 21 l1 -> f1
  579. 3. prikazivanje konteksta direktorijuma /etc
  580. ls -ld /etc
  581. 6
  582. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  583. drwxr-xr-x 53 root root 3072 May 21 09:58 /etc
  584. Aktivnost 4.
  585. 1. Šta prikazuju sledeće dve komande?
  586. ls /etc
  587. ls -l /etc
  588. 2. Upotreba opcije -a koja prikazuje skrivene datoteke (datoteke čije ime počinje sa
  589. tačkom).
  590. Pređite na lični (home) direktorijum:
  591. cd
  592. izlistajte sadržaj direktorijuma komandom:
  593. ls -l
  594. izlistajte sadržaj direktorijuma i prikažite i skrivene datoteke:
  595. ls -al
  596. 3. Upotreba opcije -d kojom se prikazuje tzv. kontekst direktorijuma, tj. informacije o
  597. direktorijumu (ko je vlasnik, kojoj je grupi dodeljen, prava pristupa, itd) umesto
  598. sadržaja direktorijuma.
  599. Izlistajte sadržaj direktorijuma:
  600. ls -l /tmp
  601. prikažite kontekst:
  602. ls -ld /tmp
  603. 4. Prikažite sadžaj direktorijuma "po dubini" (recursively)
  604. ls -R /usr
  605. 3. Datoteke i tipovi datoteka
  606. U objekte Linux sistema datoteka spadaju:
  607. • regularne datoteke,
  608. • direktorijumi (mogu se posmatrati kao specijalne datoteke koje sadrže objekte
  609. sistema
  610. • datoteka, uključujući i poddirektorijume),
  611. • hard linkovi (alternativna imena datoteka) i simbolički linkovi (prečice)
  612. • blok i karakter specijalne datoteke (opisuju uređaje, odnosno drajvere u
  613. kernelu).
  614. 7
  615. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  616. 3.1. Tipovi datoteka
  617. Linux u komandnoj liniji nema pojam ekstenzije, već samo imena objekta. Datoteke
  618. nmap.tar.gz i sample.mpg posmatraju se kao regularne datoteke, bez obzira na sadržaj,
  619. pri čemu se tip datoteke može odrediti pomoću komande file.
  620. Pojam ekstenzije se uvodi pod grafičkim radnim okruženjem, u smislu asociranja
  621. datoteka sa programom na osnovu ekstenzija (npr. datoteka sa ekstenzijom doc biće
  622. otvorena u Libre Office Writeru, a ne u C kompajleru). Direktorijumi najčešće nemaju
  623. ekstenzije, iako ne postoji neko pravilo kojim bi se to eksplicitno zabranilo.
  624. Na UNIX sistemima postoji nekoliko osnovnih tipova regularnih datoteka:
  625. • tekstualne datoteke - ASCII (neformatiran tekst), English text (tekst sa
  626. interpunkcijskim karakterima) i izvršni shell programi
  627. • izvršne (binarne) datoteke
  628. • datoteke u koje su smešteni podaci (na primer, PDF ili Libre Office Writer
  629. dokument)
  630. Prilikom određivanja tipa datoteke komanda file izvršava sledeće testove: test
  631. specijalnih datoteka (filesystem test), test magičnih brojeva (magic number test) i
  632. jezički test (language test).
  633. Izlaz komande file može biti na primer:
  634. • tekstualna datoteka
  635. /etc/hosts: ASCII English text
  636. • izvršna binarna datoteka, za 32 bitne Linux sisteme
  637. /bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
  638. dynamically linked (uses shared libs), stripped
  639. • blok uređaj
  640. /dev/hda: block special (3/0)
  641. • simbolički link
  642. /sbin/rmt: symbolic link to /usr/sbin/rmt
  643. • direktorijum
  644. /etc: directory
  645. Aktivnost 5.
  646. Odredite tip datoteka /etc/hosts, /bin/cp, /dev/sda.
  647. 8
  648. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  649. Komandu zadajete sa administrativnim privilegijama. Ukoliko sistem zatraži lozinku,
  650. unosite vašu lozinku (dakle, "password").
  651. 1. Datoteka /etc/hosts:
  652. sudo file /etc/hosts
  653. 2. Datoteka /bin/cp:
  654. sudo file /bin/cp
  655. 3. Datoteka /dev/sda:
  656. sudo file /dev/sda
  657. Pitanje 1.
  658. Korisnik root zadaje komandu file na sledeći način: file <ARGUMENT>
  659. Komanda vraća rezultat:
  660. <ARGUMENT>: ASCII English text
  661. Šta je od ponuđenih odgovora mogući argument komande (označen kao <ARGUMENT>)?
  662. a. /etc/hosts
  663. b. /bin/cp
  664. c. /dev/hda
  665. d. /dev/lp0
  666. 3.2. Imena datoteka
  667. Što se tiče imena datoteka:
  668. • Dozvoljeni karakteri su sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9),
  669. crta (-), underscore (_) i tačka (.)
  670. • Zabranjeni karakteri su: ! “ ‘ ` ; : / \ $ < > ( ) [ ] { } ~
  671. • Opcije UNIX komandi počinju jednom (-) ili dvema crtama (--), tako da imena
  672. datoteka ne treba počinjati tim karakterima
  673. • Ukoliko ime objekta počinje tačkom (.), on se smatra skrivenim i može se videti
  674. pomoću komande ls samo ako je zadata s parametrom -a (all)
  675. Ukoliko se umesto imena direktorijuma u apsolutnoj putanji navede ~ korisnik će biti
  676. preusmeren na home direktorijum. Na primer, komanda less ~/myfile.txt prikazaće
  677. sadržaj datoteke myfile.txt koja se nalazi u home direktorijumu korisnika koji je
  678. komandu zadao.
  679. Napomena: u komandnoj liniji ekstenzije ne postoje, već samo imena objekta!
  680. 9
  681. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  682. 4. Upotreba džokera
  683. Imena datoteka mogu se zameniti džoker (joker) karakterima *, ? i []. Argument
  684. komande koji sadrži džoker zamenjuje se odgovarajućom listom datoteka shodno
  685. pravilima zamene. Komandni interpreter izvršava zamenu pre izvršavanja same
  686. komande, odnosno pre pokretanja programa.
  687. 1. Karakter * menja bilo koji niz znakova proizvoljne dužine. Na primer, izlaz sledeće
  688. komande:
  689. ls -d /var/s*
  690. mogu biti dva direktorijuma smeštena u direktorijumu /var:
  691. /var/spool /var/stat
  692. Imena spool i stat odgovaraju pravilu zamene: počinju slovom "s" nakon koga se
  693. nalazi proizvoljan broj karaktera.
  694. 2. Karakter ? menja tačno jedan znak (bilo koji). Na primer, izlaz sledeće komande:
  695. ls -d /?bin
  696. je direktorijum sbin koji se nalazi u root direktorijumu:
  697. /sbin
  698. Drugim rečima, izlaz je tačno jedan karakter (bilo koji) nakon koga se nalazi niz "bin".
  699. 3. Opseg [poc-kraj] menja tačno jedan znak koji pripada tom opsegu. Opseg se NE
  700. SME zadati u opadajućem redu. Na primer, izlaz sledeće komande:
  701. ls -d /etc/[a-d][a-d]*
  702. mogu biti sledeći direktorijumi:
  703. /etc/adduser.conf /etc/bash.bashrc /etc/bash_completion.d
  704. /etc/adjtime /etc/bash_completion /etc/calendar
  705. U ovom slučaju imena moraju da zadovolje sledeći kriterijum:
  706. • prvi i drugi karakter su biti bilo koje slovo iz opsega [a-d] (što znači "a", "b", "c"
  707. ili "d").
  708. • nakon drugog karaktera nalazi se bilo koji niz karaktera proizvoljne dužine.
  709. 10
  710. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  711. Aktivnost 6.
  712. Pređite na direktorijum /bin sledećom komandom:
  713. cd /bin
  714. Prikažite sve datoteke čije ime počinje na slovo "a":
  715. ls -l a*
  716. Prikažite sve datoteke čije ime počinje slovima "ch":
  717. ls -l ch*
  718. Šta prikazuje sledeća komanda?
  719. ls -l ??mod
  720. Vratite se na home direktorijum komandom: cd
  721. Pitanje 2.
  722. 1. Korisnik zadaje jednu komandu. Kao rezultat izvršenja u terminalu se prikazuje:
  723. /etc/adduser.conf /etc/bash.bashrc /etc/bash_completion.d
  724. /etc/adjtime /etc/bash_completion /etc/calendar
  725. Koju je komandu korisnik zadao?
  726. a. ls -d /etc/[a-d][a-d]*
  727. b. ls -d /etc/[a-d][a-d]?
  728. c. ls -d /etc/[abcd][Abcd]*
  729. d. ls -d /etc/[abcd][abcd]?
  730. Pitanje 3.
  731. Korisnik zadaje jednu komandu. Kao rezultat izvršenja u terminalu se prikazuje:
  732. chmod lsmod
  733. Komanda ne prikazuje datoteke modprobe i chown iz tekućeg direktorijuma. Koju je
  734. komandu korisnik zadao?
  735. a. ls [a, ..x][a, ..x]*
  736. b. ls *mod*
  737. c. ls ??mod
  738. d. ls [c-l][h-s]*
  739. 11
  740. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  741. 5. Redirekcija ulaza i izlaza i povezivanje komandi u pipeline
  742. UNIX komande primaju podatke sa standardnog ulaza (tastatura) a rezultate izvršenja
  743. šalju na standardni izlaz (najčešće ekran). UNIX omogućava da se ulaz i izlaz komande
  744. preusmere:
  745. 1. Ulaz komande preusmerava se pomoću znaka "<" (manje od). Na primer, moguće je
  746. standardni ulaz sa tastature zameniti nekom tekstualnom datotekom:
  747. wc -l < /tmp/jsmith.dat
  748. 2. Za redirekciju izlaza se koristi znak ">" (veće od). Ukoliko se redirekcija vrši u
  749. postojeću datoteku datoteka se briše, a zatim se kreira nova u koju se smešta rezultat
  750. izvršenja komande.
  751. ls -l /home/jsmith > myfile - redirekcija izlaza u novu datoteku
  752. 3. Ukoliko korisnik želi da se rezultat izvršenja doda na postojeću datoteku bez brisanja
  753. njenog sadržaja, za redirekciju izlaza koristi se znak ">>".
  754. ls -l /tmp/jsmith >> myfile - redirekcija izlaza u postojeću datoteku
  755. Aktivnost 7.
  756. 1. Pozicionirajte se na lični direktorijum.
  757. cd
  758. 2. Čemu služi sledeća komanda?
  759. ls -l /etc
  760. 3. Preusmerite izlaz sledeće komande u datoteku etclist:
  761. ls -l /etc > etclist
  762. 4. Pogledajte sadržaj datoteke etclist programom za pregledanje tekstualnih datoteka
  763. cat.
  764. cat etclist
  765. 5. Izlaz komande mount preusmerite u datoteku mountlist:
  766. mount > mountlist
  767. 6. Pogledajte sadržaj datoteke mountlist programom za pregledanje tekstualnih
  768. datoteka cat.
  769. cat mountlist
  770. 7. U datoteku mountlist koju ste kreirali dopišite sadržaj home direktorijuma.
  771. ls -al ~ >> mountlist
  772. 8. Ponovo pogledajte sadržaj datoteke mountlist i učite izmene.
  773. 12
  774. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  775. cat mountlist
  776. 9. Obrišite datoteke koje ste kreirali:
  777. rm etclist mountlist
  778. Pitanje 4.
  779. Sadržaj datoteke 1.txt je:
  780. I love black metal.
  781. Sadržaj datoteke 2.txt je:
  782. I should listen to more black metal.
  783. Korisnik zadaje određenu komandu i menja sadržaj datoteke 2.txt u:
  784. I love black metal.
  785. I should listen to more black metal.
  786. Koju je komandu korisnik zadao:
  787. a. cat 1.txt > 2.txt
  788. b. cat 1.txt >> 2.txt
  789. c. cat 2.txt >> 1.txt
  790. d. cat 2.txt > 1.txt
  791. Pitanje 5.
  792. Korisnik zadaje sledeće komande?
  793. ls -l /etc > 1.txt
  794. ls -l /var >> 1.txt
  795. ls -l /usr > 1.txt
  796. U datoteci 1.txt nalazi se sadržaj direktorijuma:
  797. a. /etc
  798. b. /etc i /var
  799. c. /etc, /var i /usr
  800. d. /usr
  801. 5.2. Povezivanje komandi u pipeline
  802. Pipeline funkcioniše na sledeći način: standardni izlaz komande sa leve strane znaka
  803. pipe (cev, karakter "|") postaje standardni ulaz komande sa desne strane znaka.
  804. Na primer, pretpostavimo da korisnik želi da zna koliko datoteka ima u direktorijumu
  805. /etc.
  806. 13
  807. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  808. • Korisnik može izlistati sadržaj direktorijuma u takozvanom long-listing formatu i
  809. izvršiti redirekciju izlaza u privremenu datoteku /tmp/files_in_etc.
  810. ls -l /etc > /tmp/files_in_etc
  811. • Dalje, korisnik može prebrojati broj linija u privremenoj datoteci pomoću
  812. komande wc (word count), pri čemu opcija -l znači da se broje linije datoteke
  813. wc -l < /tmp/files_in_etc
  814. 145
  815. Prva komanda koristi datoteku /tmp/files_in_etc kao standardni izlaz, a druga kao
  816. standardni ulaz, što znači da se prebrojavanje datoteka u direktorijumu /etc može
  817. realizovati pomoću pipeline sprege komandi ls i wc:
  818. ls -l /etc | wc -l
  819. 145
  820. U pipeline se može povezati veći broj komandi. Sledeći primer ilustruje pipeline koji
  821. prebrojava sve korisnike koji su prijavljeni na sistem a ime im počinje slovom "a" i
  822. prikazuje ih sortirane po abecednom redu.
  823. finger | grep a* | wc -l | sort
  824. Preusmeravanje se koristi kad se koristi podatak iz datoteke koja će se i dalje koristiti.
  825. Aktivnost 8.
  826. 1. Potrebno je prebrojati sve datoteke u osnovnoj grani direktorijuma /etc. Jedan od
  827. načina na koji se to može učiniti je sledeći:
  828. • preusmerite izlaz komande koja ispisuje jednu datoteku direktorijuma /etc u
  829. svakoj liniji na ekranu u neku datoteku:
  830. ls -l /etc > etc1.txt
  831. • prebrojite linije datoteke – koristi se komanda wc (word count), opcija -l znači da
  832. se broje linije datoteke:
  833. wc -l etc1.txt
  834. Drugi način je da iskoristite pipeline te dve komande:
  835. ls -l /etc | wc -l
  836. 2. Drugi primer gde je pipeline neophodan je bilo koja Linix komanda koja proizvodi
  837. veliki izlaz. Komanda koja prikazuje sadržaj etc direktorijuma (ls -l /etc) je dobar
  838. primer. Izlaz takve komande možete videti stranu po stranu ako uradite sledeće stvari:
  839. • proverite izlaz komande:
  840. ls –l /etc
  841. 14
  842. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  843. • preusmerite izlaz komande ls -l /etc (koja ispisuje jednu datoteku
  844. direktorijuma /etc u svakoj liniji na ekranu) u neku datoteku
  845. ls -l /etc > etc2.txt
  846. • pregledajte datoteku viewer-om less
  847. less etc2.txt
  848. • NAPOMENA: program za pregledanje teksta less koristite tako što strelicama na
  849. gore i dole (ili tasterima "Page Up" i "Page Down" pomerate tekst. Program less
  850. napuštate pritiskom na taster "Q".
  851. Drugo rešenje je da povežete te dve komande u pipeline:
  852. ls -l /etc | less
  853. 3. Obrišite datoteke koje ste kreirali (za brisanje se koristi komanda rm, a datoteke
  854. koje se brišu navode se kao argumenti):
  855. rm etc1 etc2
  856. 6. Rad sa tekstualnim datotekama
  857. Sadržaj tekstualne datoteke najlakše se može pregledati pomoću programa cat i less.
  858. U zavisnosti od veličine datoteke korisnik će odrediti koji će program koristiti - ukoliko
  859. je datoteka
  860. kraća i može se prikazati na jednom ekranu, može se koristiti cat. U suprotnom, koristi
  861. se program less koji prikazuje datoteku sa pauzom nakon svakog punog ekrana.
  862. Na primer:
  863. cat /etc/resolv.conf
  864. Komanda less pravi pauzu posle svakog ekrana i navigaciju po datoteci unapred i
  865. unazad. Nakon pokretanja programa less prikazuje prvi ekran sadržaja datoteke, a
  866. zatim se koriste interaktivne komande za navigaciju po sadržaju datoteke i napuštanje
  867. programa:
  868. • h ili H - prikazuje pomoć pri korišćenju interaktivnih komandi
  869. • <Space> - prikazuje sledeći ekran sadržaja datoteke
  870. • <DOWN> - prikazuje sledeću liniju teksta
  871. • <UP> - prikazuje prethodnu liniju teksta
  872. • <RIGHT> - horizontalno pomeranje ekrana udesno (ukoliko se ne koristi word
  873. wrap)
  874. 15
  875. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  876. • <LEFT> - horizontalno pomeranje ekrana ulevo (ukoliko se ne koristi word
  877. wrap)
  878. • q ili Q - napuštanje programa less.
  879. Primer:
  880. less /etc/passwd
  881. ls -l /etc | less
  882. 6.1. Traženje teksta u datoteci
  883. Traženje teksta u datoteci može se ilustrovati sledećim primerom: ukoliko želite da
  884. utvrdite da li određeni korisnik ima nalog na sistemu ili ne pretražite datoteku
  885. /etc/passwd! (u ovoj datoteci su opisani svi korisnički nalozi na sistemu). Ukoliko se
  886. datoteka proverava programom less, a na sistemu postoji veliki broj korisničkih naloga,
  887. ova procedura može potrajati. Jednostavniji i brži način kojim se to može izvesti je
  888. korišćenje komande grep.
  889. Komanda grep traži navedeni uzorak teksta u svim linijama datoteke i na ekranu
  890. prikazuje one linije u kojima je uzorak nađen. U najjednostavnijem obliku, sintaksa
  891. komande grep je:
  892. grep text filename
  893. gde je text uzorak koji se traži u datoteci filename.
  894. Na primer, korisnik zadaje komandu:
  895. cat myfile
  896. i kao rezultat izvršavanja dobija sledeći tekst:
  897. The simplest form of a regular expression is one that
  898. includes only letters. For example, they would match only
  899. the three-letter sequence t, h, e. This pattern is found
  900. in the following words: the, therefore, bother.
  901. Sledeći primer ilustruje traženje stringa "only" u datoteci myfile.
  902. grep only myfile
  903. Kao rezultat, komanda vraća sledeći red:
  904. includes only letters. For example, the would match only
  905. 16
  906. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  907. Aktivnost 9.
  908. 1. U datoteci /etc/passwd pronadjite liniju koja opisuje korisnika "root" komandom
  909. grep.
  910. grep root /etc/passwd
  911. 2. Prikažite sve datoteke i direktorijume iz direktorijuma /etc, koje u sebi sadrže reč
  912. hosts, kao što su:
  913. ghostscript
  914. hosts
  915. hosts.allow
  916. hosts.deny
  917. Ovo možete da uradite pipe-om komandi ls i grep:
  918. ls -l /etc | grep hosts
  919. 3. Sve datoteke i direktorijume iz direktorijuma /etc, koje u sebi sadrže reč hosts
  920. upišite u novu tekstualnu datoteku u vašem ličnom direktorijumu.
  921. ls -l /etc | grep hosts > ~/1.txt
  922. 6.2. Editor teksta "nano"
  923. Editor nano se pokreće sledećom komandom:
  924. nano [filename]
  925. Ukoliko korisnik zada komandu nano bez argumenata, ili kao argument navede ime
  926. nepostojeće datoteke, nano će početi rad na novoj datoteci. Ukoliko se kao argument
  927. navede ime postojeće datoteke, nano će datoteku učitati, nakon čega korisnik može da
  928. vrši izmene (ukoliko ima prava). Sadržaj datoteke na disku ažurira se sadržajem
  929. modifikovanim editorom nano tek kada korisnik zada komandu za snimanje datoteke.
  930. Po otvaranju nano editora, zgodno je da se malo upoznate sa okruženjem, pošto je
  931. drugačiji od uobičajenih editora sa grafičkim interfejsom.
  932. 17
  933. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  934. Screenshot 1. Editor nano
  935. • Gornja traka prikazuje redom ime i verziju editora, ime trenutne datoteke i
  936. status izmena.
  937. • Srednji deo ekrana služi za prikaz sadržaja datoteke.
  938. • Na donjem delu se nalazi statusna traka sa bitnim informacijama ispod koje se
  939. nalaze dve pomoćne trake sa spiskom najčešće korišćenh komandi i kombinacije
  940. tastera koje se koriste za njih. U ovom delu će se nalaziti promenljiv sadržaj, u
  941. zavisnosti od konteksta.
  942. Većina komandi se zadaje kombinacijom CTRL ili ALT i nekog slova.
  943. • Uputstvo za korišćenje editora se dobija kombinacijom CTRL i G (Get help), gde
  944. se nalazi i spisak svih komandi.
  945. U uputstvima i na panelima je korišćenje tastera CTRL označeno simbolom ^, a ALT
  946. sa M-.
  947. • Na primer, na donjoj pomoćnoj traci piše ^W Where Is – to znači da treba da
  948. pritisnemo kombinaciju tastera CTRL i W da bi započeli pretragu teksta
  949. • Slično, M-6 predstavlja kombinaciju ALT i 6 za kopiranje teksta.
  950. Za navigaciju po tekstu mogu se koristiti kursorski tasteri, tj. strelice, kao i PgUp i
  951. PgDn.
  952. Za rad sa blokovima (clipboard, copy, paste) koriste se sledeće komande:
  953. • M-A (ALT+A) početak markiranja bloka teksta od kursora (select)
  954. 18
  955. Osnovi rada sa datotekama i direktorijumima (prvi deo)
  956. • M-6 (ALT+6) kopiranje teksta u bafer (copy)
  957. • ^K (CTRL+K) isecanje teksta u bafer (cut)
  958. • ^U (CTRL+U) lepljenje teksta na tekuću poziciju (paste)
  959. NAPOMENA: Ako se vrši isecanje ili kopiranje teksta bez prethodnog markiranja, uzima
  960. se cela linija!
  961. Za snimanje datoteke i napuštanje editora nano koriste se sledeće komande:
  962. • ^O snimanje datoteke na disk (traži unos imena fajla na statusnoj traci,
  963. potvrđuje se sa <enter>)
  964. • ^X napuštanje editora (ako fajl nije snimljen, pitaće nas za akciju Yes/No/Cancel)
  965. 19
  966.  
  967.  
  968.  
  969.  
  970. Visoka škola elektrotehnike i računarstvastrukovnih
  971. studija
  972. Beograd
  973. OPERATIVNI SISTEMI 1
  974. VEŽBA 3
  975. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  976. Sadržaj:
  977. 1. Osnovni pojmovi Linux sistema datoteka
  978. 2. O aktivnom stablu i aktiviranju fajl sistema
  979. 3. Kopiranje datoteka
  980. 4. Pomeranje i promena imena datoteka
  981. 5. Brisanje datoteka
  982. 6. Rad sa direktorijumima
  983. Nemanja Maček
  984. Borislav Đorđević
  985. Borislav Krneta
  986. Beograd, 2015
  987. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  988. 1. Osnovni pojmovi Linux sistema datoteka
  989. NAPOMENA: Pročitajte ovo više informativno i pokušajte da shvatite suštinu bez
  990. zalaženja u detalje! Diskovi, particije, aktivno stablo i administracija sistema datoteka
  991. detaljno se rade u okviru kursa Operativni sistemi 2.
  992. Da bi particija mogla da se koristi za čuvanje podataka potrebno kreirati fajl sistem.
  993. Fajl sistem čine: zaglavlje (u kome se nalazi najmanje podataka, ali su ti podaci
  994. neophodni za funkcionisanje sistema datoteka), strukture za organizaciju podataka na
  995. medijumu (meta-data area) i sami podaci, odnosno datoteke i direktorijumi.
  996. Linux sistem datoteka čine:
  997. • zaglavlje (superblock)
  998. • tabela indeksnih čvorova (i-node tabela)
  999. • blokovi sa podacima (data blocks)
  1000. • direktorijumski blokovi (engl. directory blocks)
  1001. • blokovi indirektnih pokazivača (indirection block)
  1002. Slika 1. Skica Linux sistema datoteka
  1003. 1
  1004. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1005. Superblok je zaglavlje sistema datoteka i sadrži informacije o sistemu datoteka u
  1006. celini. Sadržaj regularnih datoteka čini određeni broj blokova podataka. Direktorijumi
  1007. se posmatraju kao specijalne datoteke koje sadrže direktorijumske blokove.
  1008. Direktorijumski blokovi su tabele sastavljene od određenog broja file-info struktura
  1009. (FCB, File Control Block). File-info struktura sadrži ime objekta i pokazivač na indeksni
  1010. čvor (i-node) za taj objekat.
  1011. I-node sadrži sve informacije o objektu koji opisuje osim imena:
  1012. • tip objekta (npr. regularna datoteka, direktorijum) i pristupna prava za tri
  1013. vlasničke kategorije (vlasnik, grupa i “ostatak sveta”)
  1014. • broj hard linkova na dati objekat
  1015. • user ID, group ID (vlasnik i grupa objekta)
  1016. • veličinu objekta
  1017. • vreme zadnjeg pristupa objektu, vreme zadnje modifikacije objekta i vreme
  1018. zadnje modifikacije indeksnog čvora objekta.
  1019. • listu pokazivača:
  1020. • direktnih, na blokove sa podacima, koja je dovoljna da se adresiraju prvih
  1021. nekoliko blokova podataka koji čine početak datoteke (broj zavisi od tipa
  1022. sistema datoteka) i
  1023. • indirektnih (na jednostruke, dvostruke i trostruke indirektne blokove).
  1024. Ove informacije dobijate kada zadate komandu koja prikazuje tzv. long-listing. Na
  1025. primer:
  1026. nmacek2@lrs41:~$ ls -l /var
  1027. drwxr-xr-x 2 root root 4096 јан 12 17:00 backups
  1028. drwxr-xr-x 21 root root 4096 дец 19 13:26 cache
  1029. drwxrwsrwt 2 root whoopsie 4096 јан 12 16:47 crash
  1030. drwxr-xr-x 76 root root 4096 дец 22 19:37 lib
  1031. drwxrwsr-x 2 root staff 4096 апр 11 2014 local
  1032. drwxrwxr-x 14 root syslog 4096 мар 14 12:34 log
  1033. drwxrwsr-x 2 root mail 4096 јул 22 2014 mail
  1034. drwxrwsrwt 2 root whoopsie 4096 јул 23 2014 metrics
  1035. 2
  1036. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1037. 2. O aktivnom stablu i aktiviranju fajl sistema
  1038. Da bi sprečili moguće zbunjivanje. Komande C:, D:, E: i slične na operativnom sistemu
  1039. Linux NE RADE! Vašim fajl sistemima ne pristupate preko logičkih diskova. Fajl sistemi
  1040. se pod Linux operativnim sistemom aktiviraju montiranjem (engl. mounting) na
  1041. aktivno stablo, tj. na mount-point direktorijume.
  1042. Početak stabla je koreni (root) direktorijum na koji se root fajl sistem koji sadrži
  1043. osnovnu direktorijumsku strukturu, operativni sistem, instalirani softver, neke
  1044. privremene datoteke i korisnički direktorijum root korisnika. U root fajl sistemu
  1045. administrator kreira poddirektorijume na koje “montira” tj lepi druge fajl sisteme,
  1046. uključujući i DVD medijume, USB fleš i hard diskove itd.
  1047. Da pojasnimo: kad udenete USB fleš u računar, grafičko radno okruženje će montirati
  1048. fleš na neki direktorijum (npr /media/transcend). Ako radite u komandnoj liniji, onda
  1049. morate ručno da kreirate neki direktorijum i montirate fleš na taj direktorijum.
  1050. O svemu ovome više priče će biti u operativnim sistemima 2, ovo je više informativnog
  1051. karaktera. Pogledajte sliku 2 i biće vam jasno kako ovo radi.
  1052. Slika 2. Princip aktiviranja na aktivno stablo
  1053. 3
  1054. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1055. 2.1. Pregled značajnijih direktorijuma u aktivnom stablu
  1056. Root fajl sistem sadrži osnovnu direktorijumsku strukturu stabla. Značajniji poddirektorijumi
  1057. u aktivnom stablu su:
  1058. • /bin - najčešće korišćene komande koje mogu koristiti regularni korisnici
  1059. • /boot - datoteke koje koristi boot loader (često se realizuje kao zasebni FS)
  1060. • /dev - specijalne datoteke koje predstavljaju uređaje (nodes), koje se kreiraju
  1061. prilikom instalacije Linux sistema
  1062. • /etc - konfiguracione datoteke u tekstualnom obliku
  1063. • /home - lični direktorijumi korisnika, npr ako je username george, onda je home
  1064. direktorijum /home/george
  1065. • /mnt, /media - direktorijumi u kome se nalaze mount-point direktorijumi za USB
  1066. diskove i DVD uređaje (zavisno od distribucije, može biti i neki drugi, npr:
  1067. /var/run/nmacek/media)
  1068. • /tmp - privremene datoteke
  1069. • /root - lični direktorijum korisnika root
  1070. • /usr - većina korisničkih komandi, prateće biblioteke i dokumentacija
  1071. • /var - spool direktorijumi, log datoteke, slične stvarčice
  1072. Slika 3. Značajniji direktorijumi u aktivnom stablu
  1073. 4
  1074. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1075. 3. Kopiranje datoteka
  1076. Komanda cp služi za kopiranje datoteka i direktorijuma. U opštem slučaju sintaksa
  1077. komande cp je:
  1078. cp SOURCE DESTINATION
  1079. Komanda cp kopira izvorišni objekat (SOURCE) u odgovarajuće odredište (DESTINATION).
  1080. Argumenti SOURCE i DESTINATION moraju se navesti. Ukoliko korisnik želi da iskopira
  1081. datoteku u tekući direktorijum, kao odredišni argument može navesti tačku.
  1082. U zavisnosti od argunemata postoje tri osnovna oblika korišćenja komande cp:
  1083. • kopiranje jedne datoteke
  1084. • kopiranje grupe datoteka iz istog direktorijuma
  1085. • kopiranje direktorijumskog stabla.
  1086. 3.1. Kopiranje jedne datoteke
  1087. Opšti oblik komande:
  1088. cp source_file destination
  1089. • Argument source_file je ime izvorišne datoteke
  1090. • Argument destination je odredišni direktorijum ili ime odredišne datoteke.
  1091. • Argumenti mogu, po potrebi, sadržati apsolutne ili relativne putanje.
  1092. Primeri:
  1093. 1. Kopiranje datoteke a.a u b.b
  1094. cp a.a b.b
  1095. 2. Kopiranje datoteke a.a iz direktorijuma /home u /tmp sa promenom imena u b.b
  1096. cp /home/a.a /tmp/b.b
  1097. 3. Kopiranje datoteke a.a iz tekućeg direktorijuma u direktorijum /tmp
  1098. cp a.a /tmp/a.a
  1099. Napomena: ne može se kreirati istoimena kopija datoteke na istom direktorijumu
  1100. (datoteka se ne može kopirati u samu sebe).
  1101. 5
  1102. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1103. Aktivnost 1: jednostavno kopiranje.
  1104. Pozicionirajte se na svoj lični direktorijum:
  1105. cd
  1106. Kreirajte komandom touch jednu datoteku u svom home direktorijumu:
  1107. touch original
  1108. Iskopirajte datoteku:
  1109. cp original kopija
  1110. Pogledajte šta piše u i-nodeovima originala i kopije:
  1111. ls -l original kopija
  1112. Obrišite obe datoteke komandom rm:
  1113. rm original kopija
  1114. Aktivnost 2: kopiranje datoteke iz drugog direktorijuma u tekući, sa promenom imena
  1115. datoteke.
  1116. Iskopirajte jednu datoteku čiji je vlasnik korisnik root u svoj lični direktorijum:
  1117. cp /bin/cp mycp
  1118. Pogledajte šta piše u i-nodeovima originala i kopije (proverite kome pripada original, a
  1119. kome kopija):
  1120. ls -l /bin/cp mycp
  1121. Obrišite datoteku mycp:
  1122. rm mycp
  1123. 3.2. Kopiranje grupe datoteka iz istog direktorijuma
  1124. Opšti oblik komande:
  1125. cp source_files dest_dir
  1126. • Argument source_files je grupa izvorišnih datoteka koji se formira pomoću
  1127. džoker karaktera. Podsetnik: džokeri mogu da zamene jedan karakter (?), više
  1128. karaktera (*) ili opseg ([a-z], [A-Z], [0-9]).
  1129. • Odredišni objekat u ovom režimu rada mora biti direktorijum (apsolutna ili
  1130. relativna putanja) i specificira se argumentom dest_dir.
  1131. 6
  1132. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1133. Primeri:
  1134. 1. Kopiranje svih datoteka koje počinju slovom “a” iz tekućeg direktorijuma u /tmp
  1135. cp a* /tmp
  1136. 2. Kopiranje svih datoteka koje sadrže dva karaktera (prvi karakter je “a”) iz tekućeg
  1137. direktorijuma u /tmp
  1138. cp a?.old /tmp
  1139. 3. Kopiranje svih datoteka iz direktorijuma /etc koji počinju karakterom “a”, “b”, “c” ili
  1140. “d” u tekući direktorijum
  1141. cp /etc/[a-d]* .
  1142. Napomene:
  1143. • Kopira se grupa datoteka iz istog direktorijuma.
  1144. • Nije moguće kopirati grupu datoteka sa promenom imena kopija. Na primer:
  1145. cp a* /tmp/b*
  1146. • Originali i kopije moraju se nalaziti na različitim direktorijumima. Na primer:
  1147. • cp a* .
  1148. Aktivnost 3: upotreba džokera za kopiranje datoteka iz jednog direktorijuma u drugi.
  1149. 1. Kreirajte dva direktorijuma u svom home direktorijumu:
  1150. mkdir src dst
  1151. 2. Kreirajte nekoliko datoteka u direktorijumu src zadajući redom sledeće komande:
  1152. Pređite na direktorijum src:
  1153. cd src
  1154. Kreirajte datoteke:
  1155. touch a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5
  1156. Vratite se na svoj home direktorijum:
  1157. cd
  1158. 3. Iskopirajte u direktorijum dst sve datoteke koje počinju na slovo “a”:
  1159. cp src/a* dst/
  1160. 4. Sada probajte da Iskopirate u direktorijum dst sve datoteke koje počinju na slovo
  1161. “b”, ali tako da im promenite prvo slovo u “d” (npr b1 se kopira u d1, b2 u d2...):
  1162. cp src/b* dst/d*
  1163. Da li ste u tome uspeli?
  1164. 7
  1165. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1166. 5. Ako niste, probajte da kopirate datoteku po datoteku i da joj pri tom menjate ime:
  1167. cp src/b1 dst/d1
  1168. cp src/b2 dst/d2-RC5
  1169. cp src/b3 dst/d31
  1170. cp src/b4 dst/d41
  1171. cp src/b5 dst/d5-tux
  1172. Aktivnost 4: još malo priče o džokerima (da se podsetite).
  1173. Prikažite sve datoteke u direktorijumimu dst:
  1174. ls -l dst
  1175. Prikažite sve datoteke u direktorijumu dst čije je ima dužine dva karaktera:
  1176. ls dst/??
  1177. Prikažite sve datoteke u direktorijumu dst čije ime počinje na “d”:
  1178. ls dst/d*
  1179. Prikažite sve datoteke u direktorijumu dst čije ime počinje na “d” i dužine je 2
  1180. karaktera:
  1181. ls dst/d?
  1182. Prikažite sve datoteke u direktorijumu dst u čijem je imenu drugi karakter “2”:
  1183. ls dst/?2*
  1184. Obrišite kompletne direktorijume dst i src komandom rm:
  1185. rm -rf src dst
  1186. 3.3. Kopiranje direktorijumskog stabla
  1187. Opšti oblik komande:
  1188. cp –r source dest_dir
  1189. Primeri:
  1190. 1. Kopiranje direktorijuma /etc sa svim poddirektorijumima i datotekama u
  1191. direktorijum /tmp/oldconfig/etc
  1192. cp –r /etc /tmp/oldconfig
  1193. Obratite pažnju: datoteka /etc/passwd kopira se u /tmp/oldconfig/etc/passwd
  1194. 2. Kopiranje kompletnog sadržaja direktorijuma /etc u direktorijum /tmp/oldconfig
  1195. cp –r /etc/* /tmp/oldconfig
  1196. Obratite pažnju: datoteka /etc/passwd kopira se u /tmp/oldconfig/passwd
  1197. 8
  1198. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1199. 3. Kopiranje svij datoteka i poddirektorijuma iz tekućeg direktorijuma, čije ime počinje
  1200. karakterom “a” u direktorijum /tmp/mybackup.
  1201. cp –r a* /tmp/mybackup
  1202. Napomene:
  1203. • Originali i kopije moraju imati ista imena.
  1204. • Nije moguće izvesti kopiranje sa promenom imena kopija. Na primer:
  1205. cp -r /etc/a* /tmp/b*
  1206. • Originali i kopije moraju biti na različitim direktorijumima.
  1207. Pitanje 1.
  1208. Pronađite uljeza (pogrešno zadatu komandu) i objasite u čemu je greška:
  1209. a. cp /etc/passwd
  1210. b. cp /etc/passwd ~
  1211. c. cp /etc/passwd /tmp
  1212. d. cp /etc/passwd /tmp/copy_of_passwd
  1213. 4. Pomeranje i promena imena datoteka
  1214. Komanda mv služi za pomeranje i promenu imena datoteka i direktorijuma. U opštem
  1215. slučaju, sintaksa komande mv je:
  1216. mv SOURCE DESTINATION
  1217. Komanda mv pomera izvorišni objekat (SOURCE) u odgovarajuće odredište (DESTINATION).
  1218. Ukoliko je izvorišni objekat datoteka komandom mv joj se može promeniti ime.
  1219. Argumenti SOURCE i DESTINATION moraju se navesti. Ukoliko korisnik želi da pomeri
  1220. datoteku u tekući direktorijum, kao odredišni argument može navesti tačku.
  1221. U zavisnosti od parametara SOURCE i DESTINATION postoje dva osnovna oblika korišćenja
  1222. komande mv:
  1223. • promena imena i/ili pomeranje jedne datoteke i
  1224. • pomeranje grupe datoteka iz istog direktorijuma.
  1225. 9
  1226. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1227. 4.1. Promena imena i/ili pomeranje jedne datoteke
  1228. Opšti oblik komande:
  1229. mv source_file destination
  1230. • Argument source_file je ime izvorišne datoteke
  1231. • Argument destination može je odredišni direktorijum i/ili novo ime datoteke.
  1232. Primeri:
  1233. 1. Promena imena datoteke
  1234. mv a.a b.b
  1235. 2. Pomeranje datoteke iz jednog direktorijuma u drugi
  1236. mv /home/a.a /tmp/a.a
  1237. 3. Promena imena datoteke i pomeranje u drugi direktorijum
  1238. mv /home/a.a /tmp/b.b
  1239. 4.2. Pomeranje grupe datoteka iz istog direktorijuma
  1240. Opšti oblik komande:
  1241. mv source_file dest_dir
  1242. • Argument source_files je grupa izvorišnih datoteka koja se formira pomoću
  1243. džoker karaktera (*, ?, [a-z], [A-Z], [0-9]).
  1244. • Argument dest_dir je odredišni objekat koji u ovom slučaju mora biti
  1245. direktorijum (apsolutna ili relativna putanja).
  1246. Primeri:
  1247. 1. Pomera sve fajlove koji počinju na “a” u /tmp
  1248. mv a* /tmp
  1249. 2. Korišćenje džokera
  1250. mv a?[0-9].old /usr/tmp
  1251. 3. Pomera fajlove koji počinju na “a”, “b”, “c” ili “d” u direktorijum ./backup
  1252. mv /etc/[a-d]* ./backup
  1253. 10
  1254. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1255. Napomene:
  1256. • U ovom režimu rada komanda mv pomera grupu datoteka iz iste grane isključivo
  1257. u drugi direktorijum.
  1258. • Pri tom originali i kopije moraju imati ista imena.
  1259. • Nije moguće istovremeno izvesti pomeranje grupe datoteka sa promenom
  1260. imena. Na primer:
  1261. mv a* /tmp/b*
  1262. Aktivnost 5: pomeranje jedne datoteke, grupe datoteka i direktorijuma
  1263. 1. kreirajte dva direktorijuma u svom ličnom direktorijumu.
  1264. mkdir src dst
  1265. 2. Kreirajte nekoliko datoteka u direktorijumu src zadajući redom sledeće komande:
  1266. Pređite na direktorijum src:
  1267. cd src
  1268. Kreirajte datoteke:
  1269. touch a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5
  1270. Vratite se na svoj home direktorijum:
  1271. cd
  1272. 2. Pomerite datoteku a1 u direktorijum dst:
  1273. mv src/a1 dst/
  1274. ls src
  1275. ls dst
  1276. 3. Pomerite datoteku a2 u direktorijum dst i promenite joj ime:
  1277. mv src/a2 dst/a2_v1.01
  1278. ls src
  1279. ls dst
  1280. 4. Promenite ime datoteke a3 u c6:
  1281. mv src/a3 src/c6
  1282. ls src
  1283. 5. Pomerite grupu datoteka kojima ima počinje na “b” u direktorijum dst:
  1284. mv src/b* dst/
  1285. ls src
  1286. ls dst
  1287. 11
  1288. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1289. 6. Probajte da pomerite grupu datoteka i da im promenite ime:
  1290. mv src/c* dst/d*
  1291. ls -l dst
  1292. Da li ste uspeli u tome?
  1293. 7. Probajte da pomerite ceo poddirektorijum:
  1294. mv src dst/
  1295. ls dst
  1296. Da li ste uspeli u tome?
  1297. 8. Obrišite poddirektorijume src i dst:
  1298. rm -rf src dst
  1299. Pitanje 2.
  1300. Pronađite uljeza (pogrešno zadatu komandu) i objasite u čemu je greška:
  1301. a. mv a* /tmp
  1302. b. mv a?[0-9].old /tmp/a?[0-9].new
  1303. c. mv /etc/[a-d]* ./backup
  1304. d. mv /etc/?[a-d] ./backup/etc
  1305. 5. Brisanje datoteka
  1306. Komanda rm služi za brisanje datoteka i direktorijuma. U opštem slučaju, sintaksa
  1307. komande rm je:
  1308. rm OBJECT
  1309. što znači da komanda rm briše objekat sistema datoteka (OBJECT). Parametar OBJECT se
  1310. mora navesti, a u zavisnosti od njega postoje tri osnovna oblika korišćenja komande:
  1311. • brisanje jedne datoteke
  1312. • brisanje grupe datoteka iz istog direktorijuma
  1313. • rekurzivno brisanje direktorijumskog stabla
  1314. 5.1. Brisanje jedne datoteke
  1315. Opšti oblik komande:
  1316. rm filename
  1317. 12
  1318. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1319. • Argument filename je ime datoteke koja će biti obrisana, a opciono može
  1320. sadržati i apsolutnu ili relativnu putanju datoteke.
  1321. Primeri:
  1322. 1. Brisanje datoteke a.a iz tekućeg direktorijuma
  1323. rm a.a
  1324. 2. Briše passwd.old iz direktorijuma /etc
  1325. rm /etc/passwd.old
  1326. 5.2. Brisanje grupe datoteka iz istog direktorijuma
  1327. Opšti oblik komande:
  1328. rm group_of_flies
  1329. • Argument group_of_flies je grupa izvorišnih datoteka koja se formira pomoću
  1330. džoker karaktera (*, ?, [a-z], [A-Z], [0-9]).
  1331. Primeri:
  1332. 1. Brisanje svih datoteka čije ime počinje karakterom “a” iz tekućeg direktorijuma
  1333. rm a*
  1334. 2. Brisanje svih datoteka čije ime se završava sa .conf.old iz direktorijuma /etc
  1335. rm /etc/*.conf.old
  1336. Napomena: u ovom režimu rada komandom rm mogu se obrisati isključivo datoteke
  1337. koje se nalaze u istom direktorijumu.
  1338. 5.3. Rekurzivno brisanje direktorijumskog stabla
  1339. Opšti oblik komande:
  1340. rm -r directory
  1341. Primeri:
  1342. 1. Brisanje direktorijum backup i kompletnog sadržaja
  1343. rm –r /etc/backup
  1344. 13
  1345. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1346. 2. Brisanje sadržaja direktorijuma backup ali ne i samog direktorijuma
  1347. rm –r /etc/backup/
  1348. Aktivnost 6: brisanje datoteka i poddirektorijuma
  1349. 1. Pozicionirajte se na svoj lični direktorijum
  1350. cd
  1351. 2. Kreirajte dve datoteke, direktorijum i u njemu još dve datoteke:
  1352. touch a1 a2 b1 b2
  1353. mkdir dir1
  1354. touch dir1/c1
  1355. touch dir1/c2
  1356. 3. Probajte da obrišete dve datoteke sa fiegom -i:
  1357. rm -i a*
  1358. 4. Probajte da obrišete dve datoteke sa flegom -f:
  1359. rm -f b*
  1360. 5. Probajte da obrišete direktorijum (koji nije prazan) komandom rmdir:
  1361. rmdir dir1
  1362. Jeste li uspeli u tome?
  1363. ls -l
  1364. Ako niste, probajte ovako:
  1365. rm -rf dir1
  1366. Jeste li sada uspeli?
  1367. Pitanje 3. Objasnite čemu služe opcije -i i -f komande rm. Koristite man stranicu!
  1368. 6. Rad sa direktorijumima
  1369. Direktorijumi se kreiraju komandom mkdir (make directory), čija je sintaksa:
  1370. mkdir dir
  1371. Ukoliko se kao parametar komandi navede -p, komanda mkdir će napraviti sve
  1372. roditeljske direktorijume koji su neophodni.
  1373. Na primer, komanda:
  1374. mkdir -p pera/kojot/super/genije
  1375. 14
  1376. Osnovi rada sa datotekama i direktorijumima (drugi deo)
  1377. radi isto što i sledeće komande:
  1378. mkdir pera
  1379. mkdir pera/kojot
  1380. mkdir pera/kojot/super
  1381. mkdir pera/kojot/super/genije
  1382. Direktorijum se može obrisati komandama rm i rmdir (remove directory).
  1383. • Komandom rmdir može se obrisati isključivo prazan direktorijum.
  1384. • Komanda rm je moćnija – za razliku od komande rmdir, rekurzivnim brisanjem
  1385. komandom rm mogu se ukloniti cela direktorijumska stabla sa datotekama.
  1386. Primeri:
  1387. 1. Brisanje direktorijuma backup (samo ako je prazan!)
  1388. rmdir /backup
  1389. 2. Brisanje direktorijuma backup i kompletnog sadržaj
  1390. rm -r /backup
  1391. Aktivnost 7: kreiranje direktorijuma i brisanje direktorijuma
  1392. 1. Pređite na lični direktorijum:
  1393. cd
  1394. 2. Kreirajte jedan direktorijum:
  1395. mkdir newdirectory
  1396. 3. Kreirajte stablo:
  1397. mkdir -p 1/11/111
  1398. 4. Proverite šta je prethodna komanda napravila:
  1399. ls
  1400. cd 1
  1401. ls
  1402. cd 11
  1403. ls
  1404. cd
  1405. Obrišite direktorijum i stablo
  1406. rmdir newdirecory
  1407. rm -rf 1
  1408. 15
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415. Visoka škola elektrotehnike i računarstvastrukovnih
  1416. studija
  1417. Beograd
  1418. OPERATIVNI SISTEMI 1
  1419. VEŽBA 4
  1420. Kontrola pristupa na nivou sistema datoteka
  1421. Contrôle d'accès du système de fichiers
  1422. Sadržaj
  1423. 1. Vlasništvo i prava pristupa
  1424. 2. Podrazumevana prava pristupa
  1425. 3. Promena vlasništva i pristupnih prava
  1426. 4. Uticaj kontrole pristupa na rad sa datotekama
  1427. 5. Sticky bit i SUID
  1428. Nemanja Maček
  1429. Borislav Đorđević
  1430. Borislav Krneta
  1431. Beograd, 2015
  1432. Contrôle d'accès du système de fichiers
  1433. 1. Vlasništvo i prava pristupa
  1434. Kontrola pristupa na nivou sistema datoteka obuhvata:
  1435. • vlasničke odnose (pripadnost objekata korisnicima i grupama) i
  1436. • prava pristupa (dodeljuju se svakoj datoteci i direktorijumu i određuju šta
  1437. korisnici mogu da rade)
  1438. Komanda ls -l (“long listing”) prikazuje sve informacije o objektu koje (osim imena)
  1439. čita iz i-nodova objekata. Na osnovu toga možete da odredite šta ko može da uradi sa
  1440. nekom datotekom ili direktorijumom.
  1441. Podsetnik:
  1442. ls -la prikazuje sve datoteke, uljučujući i skrivene
  1443. ls -ld prikazuje informacije iz i-nodea direktorijuma a ne njegov sadržaj
  1444. Primer:
  1445. ls -la
  1446. -rwxr-xr-x 1 root root 93 2012-02-27 22:52 cssh.sh
  1447. drwxr-xr-x 2 korisnik korisnik 4096 2012-02-27 22:53 .data
  1448. ---------- - ------- -------- ----- ---------------- --------
  1449. Tip + AR HL OWNER GROUP SIZE DATE and TIME NAME
  1450. PRAVA PRISTUPA VLASNIČKI ODNOSI OSTALI PODACI O DATOTECI
  1451. 1.1. O vlasniku, grupi i ostatku sveta
  1452. Polja OWNER i GROUP određuju vlasnika i grupu datoteke.
  1453. • Vlasnik (OWNER) je korisnik koji je kreirao objekat, odnosno korisnik kome je
  1454. root dodelio vlasništvo.
  1455. • Grupa (GROUP) je primarna grupa korisnika koji je objekat kreirao ili grupa kojoj
  1456. je root dodelio vlasništvo. Primarna grupa korisnika je grupa koju MORATE da
  1457. navedete kada kreirate korisnika. Navodi se u datoteci /etc/group.
  1458. • Svi ostali korisnici koji nisu ni vlasnik objekta, niti pripadaju grupi kojoj objekat
  1459. pripada spadaju u kategoriju ostali, tj ostatak sveta (others).
  1460. 1
  1461. Contrôle d'accès du système de fichiers
  1462. Prava pristupa nekog korisnika određuju se prema vlasničkoj kategoriji kojoj korisnik
  1463. pripada. Dakle, korisnik može biti ili:
  1464. • vlasnik datoteke
  1465. • član grupe kojoj je dodeljena datoteka
  1466. • ostatak sveta u odnosu na datoteku.
  1467. Rezultujuće pravo vlasnika koji pripada grupi kojoj je objekat dodeljen određuje se:
  1468. • kao unija prava vlasnika i grupe (kod starijih UNIXa)
  1469. • kao pravo vlasnika (kod POSIX-compliant UNIXa, kao što je Linux)
  1470. 1.2. Prava pristupa
  1471. Polje Tip + AR označava prava pristupa za tri vlasničke kategorije:
  1472. • karakter 1:
  1473. • “d” direktorijum
  1474. • “-” datoteka
  1475. • “l” simbolički link
  1476. • “b” blok uređaj
  1477. • karakteri 2-10: prava pristupa objektu za vlasnika, grupu i ostatak sveta.
  1478. Potpuni skup prava za svaku vlasničku kategoriju čine tri prava:
  1479. • pravo čitanja (“r” – Read)
  1480. • pravo upisa (“w” – Write)
  1481. • pravo izvršavanja (“x” - eXecute)
  1482. Uvek je prva pozicija read, druga write i treća execute - “rwx”.
  1483. Ukoliko se na nekoj poziciji umesto slova r, w ili x nalazi crtica (“-”), pravo je ukinuto.
  1484. Šta pristupna prava omogućuju da uradite sa datotekom?
  1485. • “r“ – čitanje sadržaja datoteke (prikazivanje na ekranu, štampanje, kopiranje)
  1486. • “w” – izmena sadržaja datoteke (ne znači da korisnik može da obriše datoteku !)
  1487. • “x” – izvršavanje datoteke (ako je shell program ili binarna izvršna datoteka)
  1488. 2
  1489. Contrôle d'accès du système de fichiers
  1490. Šta pristupna prava omogućuju da uradite sa direktorijumom?
  1491. • “r” – čitanje sadržaja direktorijuma, tj. file-info struktura (korisnik može da izvrši
  1492. komandu ls)
  1493. • “w” – izmena sadržaja direktorijuma (dodavanje novih i brisanje postojećih
  1494. objekata u njemu)
  1495. • “x” – pozicioniranje na dir. (cd), puni listing sadržaja (ls -l) i pretraživanje
  1496. direktorijuma (find)
  1497. NAPOMENA 1: da bi direktorijum na Linuxu bio praktično upotrebljiv korisnicima treba
  1498. dati prava “r” i “x”.
  1499. NAPOMENA 2: pravo “w” dato nad datotekom ne znači da možete da je obrišete. Da bi
  1500. ste obrisali datoteku, potrebno je pravo “w” nad direktorijumom u kome se nalazi.
  1501. 1.3. Primer
  1502. Na primer, korisnik zadaje sledeću komandu:
  1503. ls -l /home/pepe/lemeow
  1504. i kao rezultat dobija:
  1505. -rwxr-x--- 1 pepe mouffette 509 Mar 10 17:21 lemeow
  1506. Karakteri na pozicijama od 1 do 10 (ch 1 - ch 10) imaju značenje:
  1507. • ch 1 “-”
  1508. datoteka je obična, tj. regularna
  1509. • ch 2,3,4 “rwx”
  1510. vlasnik datoteke (korisnik pepe) može čitati, modifikovati i izvršavati datoteku
  1511. • ch 5,6,7 “r-x”
  1512. korisnici koji pripadaju grupi mouffette mogu čitati i izvršavati datoteku
  1513. • ch 8,9,10 “---”
  1514. ostatak sveta ne može ništa da radi sa datotekom
  1515. Aktivnost 1.
  1516. Pokrenite terminal. Prikažite kontekst datoteke i odredite vlasničke odnose za
  1517. • datoteku /etc/passwd i
  1518. • direktorijum /etc.
  1519. 3
  1520. Contrôle d'accès du système de fichiers
  1521. Zadajte sledeće komande:
  1522. ls -l /etc/passwd
  1523. ls -ld /home/korisnik
  1524. Za prethodno pomenute objekte odrediti:
  1525. 1. ko je vlasnik?
  1526. 2. kojoj grupi su objekti dodeljeni?
  1527. 3. koja su prava pristupa vlasnika, grupe i ostatka sveta?
  1528. 4. šta vlasnik, grupa i ostatak sveta mogu da rade sa tim objektima?
  1529. 1.4. Zašto je “rwxr-x-rx” isto što i 755?
  1530. Ako je
  1531. • “r” = 4
  1532. • “w” = 2
  1533. • “x”=1
  1534. onda je:
  1535. 7 = 4 + 2 + 1 = rwx
  1536. 6 = 4 + 2 + 0 = rw-
  1537. 5 = 4 + 0 + 1 = r-x
  1538. 4 = 4 + 0 + 0 = r--
  1539. 3 = 0 + 2 + 1 = -wx
  1540. 2 = 0 + 2 + 0 = -w-
  1541. 1 = 0 + 0 + 1 = --x
  1542. 0 = 0 + 0 + 0 = ---
  1543. Primeri:
  1544. 644 = rw-r--r-- (vlasnik ima pravo upisa i čitanja, grupa i ostali pravo čitanja)
  1545. 750 = rwxr-x--- (vlasnik ima sva prava, grupa prava čitanja i izvršavanja, ostali ništa)
  1546. Aktivnost 2: Uticaj prava na neke operacije.
  1547. Pristupna prava ne dotiču root korisnike. Zato se ovaj zadatak radi bez korišćenja sudo,
  1548. pod običnim, neprivilegovanim nalogom.
  1549. Proverite i OBJASNITE zašto sledeće komande možete, odnosno ne možete da
  1550. izvršite:
  1551. 1. prelazak na /root direktorijum
  1552. cd /root
  1553. savet – odredite prava za svoju vlasničku kategoriju:
  1554. 4
  1555. Contrôle d'accès du système de fichiers
  1556. ls -ld /root
  1557. 2. pregledanje sadržaja datoteke /etc/shadow:
  1558. cat /etc/shadow
  1559. savet – odredite prava za svoju vlasničku kategoriju:
  1560. ls -l /etc/shadow
  1561. 3. pregledanje sadržaja datoteke /etc/passwd:
  1562. cat /etc/passwd
  1563. savet – odredite prava za svoju vlasničku kategoriju:
  1564. ls -l /etc/passwd
  1565. 4. upis u direktorijum /bin:
  1566. touch /bin/myfile
  1567. savet – odredite prava za svoju vlasničku kategoriju:
  1568. ls -ld /bin
  1569. 5. brisanje datoteke iz /bin direktorijuma:
  1570. rm /bin/cp
  1571. savet – odredite prava za svoju vlasničku kategoriju:
  1572. ls -ld /bin
  1573. 2. Podrazumevana prava pristupa
  1574. Linux pri kreiranju dodeljuje objektu vlasnika i grupu i postavlja podrazumevana prava
  1575. pristupa:
  1576. • Korisnik koji kreira objekat postaje njegov vlasnik
  1577. • Objekat se dodeljuje primarnoj grupi tog korisnika.
  1578. • Podrazumevana prava pristupa zavise od promenljive umask.
  1579. 2.1. Promenljiva umask
  1580. Inicijalna prava pristupa dodeljuju se na osnovu vrednosti promenljive umask.
  1581. Promenljiva umask je specifična za svakog korisnika i postavlja se prilikom
  1582. prijavljivanja na sistem (uobičajena vrednost je 022).
  1583. Trenutna vrednost može se videti i promeniti pomoću istoimene komande.
  1584. Na primer:
  1585. 5
  1586. Contrôle d'accès du système de fichiers
  1587. umask # ispisuje trenutnu vrednost promenljive umask
  1588. 0022 # trenutna vrednost promenljive umask
  1589. umask 027 # menja vrednost umask u 027
  1590. umask # ispisuje trenutnu vrednost promenljive umask
  1591. 0027 # trenutna vrednost promenljive umask
  1592. Prva nula u vrednosti promenljive umask označava da je ona prikazana u oktalnoj
  1593. formi.
  1594. Probajte da ukucate komandu “umask -S” i protumačite rezultat izvršenja komande.
  1595. Namena ove promenljive je da ukida prava pristupa novokreiranim direktorijumima i
  1596. datotekama.
  1597. Na primer:
  1598. • Ako je umask 022, ukida se pravo upisa za grupu i ostatak sveta.
  1599. • Ako je umask 027, ukida se pravo upisa za grupu i sva prava za ostatak sveta.
  1600. Inicijalna prava pristupa pri kreiranju se razlikuju za direktorijume i datoteke:
  1601. • za direktorijum se vrednost umask oduzima od 777 (rwxrwxrwx)
  1602. • za datoteku se vrednost umask oduzima od 666 (rw-rw-rw-), zato što se
  1603. podrazumevano NE DODELJUJE pravo izvršavanja!
  1604. Primer: vrednost promenljive umask je 022. Podrazumevana prava za datoteku su:
  1605. rw-rw-rw- 666 (podrazumevano pravo)
  1606. oduzmi: ----w--w- 022 (umask)
  1607. dobija se: rw-r----- 644 (rezultat)
  1608. U ovom slučaju je tačno 666-022=644, ali to nije ispravan način razmišljanja! ZAŠTO?
  1609. Ako je umask 027, podrazumevana prava za datoteku NISU 666-027=639! Vrednost 9
  1610. ne postoji kao skup prava! Drugim rečima:
  1611. rw-rw-rw- 666 (podrazumevano pravo)
  1612. oduzmi: ----w-rwx 027 (umask)
  1613. dobija se: rw-r----- 640 (rezultat)
  1614. Dakle, ako je umask 027, rezultujuća prava za novokreiranu datoteku su 640!
  1615. 6
  1616. Contrôle d'accès du système de fichiers
  1617. Primer:
  1618. umask 027
  1619. mkdir mydir
  1620. touch myfile
  1621. ls -la
  1622. drwxr-x--- 2 nm nm 4096 dec 23 14:33 mydir
  1623. -rw-r----- 1 nm nm 0 dec 23 14:33 myfile
  1624. Aktivnost 3: Podrazumevana pristupna prava i vlasništvo novih datoteka i
  1625. direktorijuma.
  1626. 1. Proverite vrednost umask promenljive
  1627. umask
  1628. 2. Pređite na home direktorijum
  1629. cd
  1630. 3. Kreirajte novu datoteku
  1631. touch myfile
  1632. 4. Pokušajte sami da odredite, a zatim proverite pristupna prava nove datoteke
  1633. komandom
  1634. ls -l myfile
  1635. 5. Obrišite datoteku komandom
  1636. rm myfile
  1637. 6. Kreirajte novi direktorijum
  1638. mkdir mydir
  1639. 7. Pokušajte sami da odredite, pa onda proverite pristupna prava novog direktorijuma
  1640. ls -ld mydir
  1641. 8. Uklonite direktorijum komandom
  1642. rmdir mydir
  1643. Aktivnost 4: Promena vrednosti promenljive umask i uticaj na kreiranje objekata.
  1644. 1. Promenite vrednost umask promenljive
  1645. umask 027
  1646. 2. Pređite na home direktorijum
  1647. cd
  1648. 7
  1649. Contrôle d'accès du système de fichiers
  1650. 3. Kreirajte novu datoteku
  1651. touch myfile
  1652. 4. Probajte da odredite sami, pa onda proverite pristupna prava nove datoteke
  1653. ls -l myfile
  1654. 5. Obrišite datoteku
  1655. rm myfile
  1656. 6. Kreirajte novi direktorijum
  1657. mkdir mydir
  1658. 7. Probajte da odredite sami, pa proverite prava novog direktorijuma
  1659. ls -ld mydir
  1660. 8. Uklonite direktorijum
  1661. rmdir mydir
  1662. PONOVITE AKTIVNOST ZA UMASK VREDNOST 077!
  1663. 3. Promena vlasništva i pristupnih prava
  1664. Vlasnik, grupa i prava pristupa se dodeljuju svakom objektu prilikom kreiranja, a
  1665. kasnije se mogu promeniti.
  1666. • samo VLASNIK objekta ili ROOT mogu promeniti prava pristupa
  1667. • samo ROOT može promeniti vlasnika (sprečava “maltretiranje” korisnika
  1668. prepunjenjem kvote)
  1669. 3.1. Promena pristupnih prava (simbolički režim)
  1670. Opšti oblik komande:
  1671. chmod [-R] categories operator permissions [...] filename
  1672. Argumenti i opcije imaju sledeće značenje:
  1673. • categories: vlasnik “u”, grupa “g”, others “o”, sve vlasničke kategorije “a”
  1674. • operator: dodela prava “+”, ukidanje prava “–“, definisanje skupa prava “=”
  1675. • permissions: čitanje “r”, modifikacija “w”, izvršavanje “x”
  1676. • Parametar -R inicira promenu pristupnih prava direktorijuma i svih njegovih
  1677. objekata (poddirektorijuma i datoteka)
  1678. Vlasnik može dodeliti ili ukinuti prava koja želi, bez poznavanja trenutnih prava.
  1679. 8
  1680. Contrôle d'accès du système de fichiers
  1681. Ovaj režim je pogodan za dodelu ili oduzimanje prava većem broju datoteka sa
  1682. različitim trenutnim skupom prava.
  1683. Primer:
  1684. Datoteka myfile trenutno ima postavljena prava 666 (rw-rw-rw-).
  1685. ls -l myfile
  1686. -rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile
  1687. 1. Sledeća komanda postavlja r-x vlasniku i oduzima w grupi i ostalima:
  1688. chmod u=rx,go-w myfile
  1689. ls -l myfile
  1690. -r-xr--r-- 1 nm nm 0 dec 23 15:25 myfile
  1691. 2. Sledeća komanda dodaje pravo upisa vlasniku:
  1692. chmod u+w myfile
  1693. ls -l myfile
  1694. -rwxr--r-- 1 nm nm 0 dec 23 15:25 myfile
  1695. Aktivnost 5: promena pristupnih prava (simbolički režim)
  1696. 1. Pozicionirajte se na svoj lični direktorijum.
  1697. cd
  1698. 2. Postavite vrednost promenljive umask tako da vlasnik ima prava “rw-” a grupa i
  1699. ostali “r--” za sve datoteke koje korisnik kreira.
  1700. umask 022
  1701. 3. Kreirajte datoteku
  1702. touch betatest
  1703. 4. Proverite prava pristupa
  1704. ls -l betatest
  1705. 5. Koristeći chmod u simboličkom režimu
  1706. – dodajte grupi i ostalima pravo upisa:
  1707. chmod go+w betatest
  1708. ls -l betatest
  1709. – oduzmite kategoriji others sva prava:
  1710. chmod o-rwx betatest
  1711. ls -l betatest
  1712. – dodajte kategorijama owner i group pravo izvršavanja:
  1713. 9
  1714. Contrôle d'accès du système de fichiers
  1715. chmod ug+x betatest
  1716. ls -l betatest
  1717. – dajte svima sva prava:
  1718. chmod a+rwx betatest
  1719. ls -l betatest
  1720. 6. Obrišite datoteku
  1721. rm betatest
  1722. 3.2. Promena pristupnih prava (numerički režim)
  1723. Opšti oblik komande:
  1724. chmod [-R] mode filename
  1725. Parametri su sledeći:
  1726. • mode su nova pristupna prava, navode se kao tri cifre (0-7) koje predstavljaju
  1727. redom pristupna prava za vlasnika, grupu i ostatak sveta.
  1728. • filename je ime objekta kome se menjaju prava
  1729. • parametar -R inicira promenu pristupnih prava direktorijuma i svih njegovih
  1730. objekata
  1731. Primer:
  1732. Datoteka myfile trenutno ima postavljena prava 666 (rw-rw-rw-).
  1733. ls -l myfile
  1734. -rw-rw-rw- 1 nm nm 0 dec 23 15:25 myfile
  1735. 1. Dodela prava “rwx” korisniku i “r-x” grupi i ostatku sveta.
  1736. chmod 755 myfile
  1737. ls -l myfile
  1738. -rwxr-xr-x 1 nm nm 0 dec 23 15:25 myfile
  1739. Aktivnost 6: promena pristupnih prava (numerički režim)
  1740. 1. Pređite na home direktorijum:
  1741. cd
  1742. 2. Kreirajte na svom home direktorijumu novu datoteku:
  1743. touch betatest
  1744. 10
  1745. Contrôle d'accès du système de fichiers
  1746. 3. Proverite prava pristupa:
  1747. ls -l betatest
  1748. 4. Postavite svima pravo čitanja i izvršavanja:
  1749. chmod 555 betatest
  1750. ls -l betatest
  1751. 5. Dajte svima sva prava u odnosu na datoteku betatest:
  1752. chmod 777 betatest
  1753. ls -l betatest
  1754. 6. Dajte vlasniku sva prava, grupi prava “r” i “w”, a ostalima ništa:
  1755. chmod 760 betatest
  1756. ls -l betatest
  1757. 7. Obrišite datoteku:
  1758. rm betatest
  1759. 3.3. Promena vlasnika i grupe
  1760. Opšti oblici komandi za promenu vlasništva i grupe:
  1761. chown [-R] user filename (promena vlasnika)
  1762. chgrp [-R] group filename (promena grupe)
  1763. Parametri su sledeći:
  1764. • user i group su novi vlasnik i nova grupa
  1765. • filename je ime objekta kome se menja vlasništvo
  1766. • Parametar -R inicira promenu vlasništva direktorijuma i svih njegovih objekata
  1767. NAPOMENA: U Ubuntu Linuxu, chown i chgrp mogu da koriste samo sudo-eri i root
  1768. korisnik (ukoliko mu je dodeljena lozinka). Drugim rečima, unosi se prvo sudo pa ime
  1769. komande.
  1770. Primer:
  1771. Vlasnik datoteke myfile je korisnik “nm”, a datoteka je dodeljena grupi “staff”, kao što
  1772. se vidi iz listinga komande:
  1773. ls -l myfile
  1774. -rw-r--r-- 1 nm staff 0 Apr 28 12:07 myfile
  1775. 11
  1776. Contrôle d'accès du système de fichiers
  1777. 1. Sledeća komanda dodeljuje datoteku korisniku “jsmith”. NAPOMENA: sudo zahteva
  1778. da unesete svoju lozinku!
  1779. sudo chown jsmith myfile
  1780. Provera:
  1781. ls -l myfile
  1782. -rw-r--r-- 1 jsmith staff 0 Apr 28 12:07 myfile
  1783. 2. Sledeća komanda dodeljuje datoteku grupi “users”.
  1784. sudo chgrp users myfile
  1785. Provera:
  1786. ls -l myfile
  1787. -rw-r--r-- 1 jsmith users 0 Apr 28 12:07 myfile
  1788. Aktivnost 7: promena vlasnika
  1789. 1. Pređite na home direktorijum:
  1790. cd
  1791. 2. Kreirajte novu datoteku:
  1792. touch myfile
  1793. 3. Kreirajte korisnika “korisnik2” iz grafičkog okruženja ili jednostavno zadajte sledeću
  1794. komandu:
  1795. sudo adduser korisnik2
  1796. Napomena: sudo traži da unesete svoju lozinku!
  1797. 4. Probajte da poklonite datoteku drugom korisniku:
  1798. chown korisnik2 myfile
  1799. 5. Da li ste uspeli to da uradite? Proverite komandom
  1800. ls -l myfile
  1801. 6. Probajte da kao administrator, upotrebom mehanizma sudo, dodelite tu datoteku
  1802. drugom korisniku:
  1803. sudo chown korisnik2 myfile
  1804. 7. Da li ste sada uspeli to da uradite? Proverite komandom
  1805. ls -l myfile
  1806. 8. Obrišite datoteku:
  1807. sudo rm myfile
  1808. 12
  1809. Contrôle d'accès du système de fichiers
  1810. 4. Uticaj kontrole pristupa na rad sa datotekama
  1811. Vlasništvo i pristupna prava određuju da li ćete uspeti da izvršite komandu za
  1812. kopiranje, pomeranje i brisanje datoteka i direktorijama, da izvršite datoteku, kreirate
  1813. direktorijum I izlistate njegov sadržaja. Za to kontrola pristupa i služi!
  1814. 4.1. Kopiranje datoteka
  1815. Da bi korisnik mogao da iskopira datoteku <file> iz direktorijuma <dir1> u
  1816. direktorijum <dir2> potrebno je da ima sledeća dva prava:
  1817. • pravo r nad datotekom <file> (čime se omogućava čitanje sadržaja originalne
  1818. datoteke).
  1819. • pravo w nad direktorijumom <dir2> (čime se omogućava izmena sadržaja
  1820. odredišnog direktorijuma, odnosno kreiranje nove datoteke).
  1821. Ovaj skup prava je minimalan - neke varijante UNIX sistema zahtevaju dodatna prava.
  1822. Dovoljni uslovi za kopiranje fajla na svim UNIX sistemima uključuju potrebne uslove i
  1823. pravo x nad direktorijumima <dir1> i <dir2>.
  1824. Šta se dešava sa kopijama?
  1825. • vlasnik kopije je korisnik koji je pokrenuo komandu cp,
  1826. • datoteka se dodeljuje primarnoj grupi korisnika koji je pokrenuo komandu cp
  1827. (grupa koja je navedena u datoteci /etc/passwd za datog korisnika),
  1828. • pristupna prava kopije su najčešće sužena u odnosu na pristupna prava
  1829. originala, a dobijaju se logičkim množenjem bitova pristupnih prava originala i
  1830. vrednosti promenljive umask. Na primer: ako su pristupna prava originalne
  1831. datoteke 666, a promenljiva umask 002, pristupna prava kopije biće 664.
  1832. 4.2.Pomeranje datoteka
  1833. Da bi korisnik mogao da pomeri datoteku <file> iz direktorijuma <dir1> u direktorijum
  1834. <dir2>, potrebno je da ima sledeća prava:
  1835. • pravo r nad datotekom <file> (čime se omogućava čitanje sadržaja originalne
  1836. datoteke),
  1837. • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
  1838. 13
  1839. Contrôle d'accès du système de fichiers
  1840. izvorišnog direktorijuma, odnosno brisanje datoteke),
  1841. • pravo w nad direktorijumom <dir2> (čime se omogućava izmena sadržaja
  1842. odredišnog direktorijuma, odnosno kreiranje nove datoteke).
  1843. Dovoljni uslovi za pomeranje datoteka na svim UNIX sistemima uključuju potrebne
  1844. uslove i pravo x nad direktorijumima <dir1> i <dir2>.
  1845. 4.3. Promena imena datoteke
  1846. Da bi korisnik mogao da promeni ime datoteke <file> koja se nalazi u direktorijumu
  1847. <dir1>, potrebno je da ima:
  1848. • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
  1849. izvorišnog direktorijuma, odnosno promena imena datoteke).
  1850. Dovoljni uslovi za promenu imena datoteka na svim UNIX sistemima osim ovog prava
  1851. uključuju i pravo x nad direktorijumom <dir1>.
  1852. 4.4. Brisanje datoteke
  1853. Da bi korisnik mogao da obriše datoteku <file> iz direktorijuma <dir1>, potrebno je da
  1854. ima:
  1855. • pravo w nad direktorijumom <dir1> (čime se omogućava izmena sadržaja
  1856. direktorijuma, odnosno brisanje datoteke).
  1857. Dovoljni uslovi za brisanje datoteka na svim UNIX sistemima osim ovog prava uključuju
  1858. i pravo x nad direktorijumom <dir1>.
  1859. Aktivnost 8: pristupna prava originala i kopije – uticaj promenljive umask
  1860. 1. Kreirajte jednu datoteku u svom home direktorijumu
  1861. touch original
  1862. 2. Postavite prava pristupa za datoteku “original” na 775
  1863. chmod 775 original
  1864. 3. Postavite vrednost promenljive umask tako da odseca prava write i execute
  1865. kategorijama group i others sledećom komandom
  1866. umask 033
  1867. 4. Iskopirajte datoteku
  1868. cp original kopija
  1869. 14
  1870. Contrôle d'accès du système de fichiers
  1871. 5. Pogledajte šta piše u i-nodeovima originala i kopije
  1872. ls -l original kopija
  1873. Uporedite pristupna prava originala i kopije. Koji su bitovi ukinuti ?
  1874. 6. Postavite vrednost promenljive umask na vrednost 022
  1875. umask 022
  1876. 7. Obrišite obe datoteke:
  1877. rm original kopija
  1878. Aktivnost 9: vlasnički odnosi originala i kopije
  1879. 1. Pređite na svoj home direktorijum
  1880. cd
  1881. Proverite vlasničke odnose datoteke /etc/hosts
  1882. ls -l /etc/hosts
  1883. Kreirajte kopiju datoteku u svom home direktorijumu
  1884. cp /etc/hosts myhosts
  1885. Proverite vlasničke odnose originala i kopije
  1886. ls - l /etc/hosts myhosts
  1887. Kojoj grupi je dodeljena datoteka myhosts?
  1888. Koja je primarna grupa korisnika “korisnik” koji je inicirao kopiranje? U listingu
  1889. pronađite korisnika I proverite koja je grupa. Viewer “less” napuštate tasterom “q”:
  1890. less /etc/hosts
  1891. Obrišite datoteku myhosts
  1892. rm hosts
  1893. Aktivnost 10: potrebni i dovoljni uslovi za kopiranje datoteke
  1894. Odredite potrebne i dovoljne uslove da nešto iskopirate.
  1895. Kreirajte dva direktorijuma u svom home direktorijumu:
  1896. mkdir dir1 dir2
  1897. Kreirajte datoteku u direktorijumu dir1:
  1898. cp /etc/passwd dir1/file1
  1899. 1. Ako su sva prava data, kopiranje je izvodljivo:
  1900. - Dodelite svima sva prava nad direktorijumima:
  1901. chmod 777 dir1 dir2
  1902. - Dodelite svima sva prava nad datotekom:
  1903. chmod 777 dir1/file1
  1904. 15
  1905. Contrôle d'accès du système de fichiers
  1906. - Probajte da iskopirate datoteku
  1907. cp dir1/file1 dir2/file2
  1908. Ovog puta prolazi sigurno, jer su vam data sva prava.
  1909. - Obrišite kopiju:
  1910. rm dir2/file2
  1911. 2. Ukidajte redom prava nad datotekom dir1/file1 i utvrdite koja su vam prava
  1912. neophodna nad izvorišnom datotekom da bi ste mogli da izvršite kopiranje:
  1913. 2.1. pravo čitanja “r” izvorišne datoteke:
  1914. - ukinite pravo “r”:
  1915. chmod u-r dir1/file1
  1916. - probajte da iskopirate:
  1917. cp dir1/file1 dir2/file2
  1918. - da li je kopiranje uspešno? proverite komandom:
  1919. ls dir2
  1920. - ukoliko je kopiranje uspešno, obrišite kopiju
  1921. rm dir2/file2
  1922. - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
  1923. - dodelite ponovo sebi pravo “r”
  1924. chmod u+r dir1/file1
  1925. 2.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u
  1926. izvorišnu datoteku.
  1927. - ukinite pravo “w”:
  1928. chmod u-w dir1/file1
  1929. - probajte da iskopirate:
  1930. cp dir1/file1 dir2/file2
  1931. - da li je kopiranje uspešno? proverite komandom:
  1932. ls dir2
  1933. - ukoliko je kopiranje uspešno, obrišite kopiju
  1934. rm dir2/file2
  1935. - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
  1936. - dodelite ponovo sebi pravo “w”
  1937. chmod u+w dir1/file1
  1938. 2.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
  1939. izvorišne datoteke.
  1940. - ukinite pravo “x”:
  1941. 16
  1942. Contrôle d'accès du système de fichiers
  1943. chmod u-x dir1/file1
  1944. - probajte da iskopirate:
  1945. cp dir1/file1 dir2/file2
  1946. - da li je kopiranje uspešno? proverite komandom:
  1947. ls dir2
  1948. - ukoliko je kopiranje uspešno, obrišite kopiju
  1949. rm dir2/file2
  1950. - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
  1951. - dodelite ponovo sebi pravo “x”
  1952. chmod u+w dir1/file1
  1953. 3. Ukidajte redom prava nad direktorijumom dir1 i utvrdite koja su vam prava
  1954. neophodna nad direktorijumom u kome se nalazi izvorišna datoteka da bi ste mogli da
  1955. izvršite kopiranje:
  1956. 3.1 pravo čitanja “r” izvorišnog direktorijuma
  1957. - ukinite pravo “r”
  1958. chmod u-r dir1
  1959. - probajte da iskopirate:
  1960. cp dir1/file1 dir2/file2
  1961. - da li je kopiranje uspešno? proverite komandom:
  1962. ls dir2
  1963. - ukoliko je kopiranje uspešno, obrišite kopiju
  1964. rm dir2/file2
  1965. - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
  1966. - dodelite ponovo sebi pravo “r”
  1967. chmod u+r dir1
  1968. 3.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u izvorišni
  1969. direktorijum.
  1970. - ukinite pravo “w”
  1971. chmod u-w dir1
  1972. - probajte da iskopirate:
  1973. cp dir1/file1 dir2/file2
  1974. - da li je kopiranje uspešno? proverite komandom:
  1975. ls dir2
  1976. - ukoliko je kopiranje uspešno, obrišite kopiju
  1977. rm dir2/file2
  1978. 17
  1979. Contrôle d'accès du système de fichiers
  1980. - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
  1981. - dodelite ponovo sebi pravo “w”
  1982. chmod u+w dir1
  1983. 3.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
  1984. izvorišnog direktorijuma.
  1985. - ukinite pravo “x”
  1986. chmod u-x dir1
  1987. - probajte da iskopirate:
  1988. cp dir1/file1 dir2/file2
  1989. - da li je kopiranje uspešno? proverite komandom:
  1990. ls dir2
  1991. - ukoliko je kopiranje uspešno, obrišite kopiju
  1992. rm dir2/file2
  1993. - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
  1994. - dodelite ponovo sebi pravo “x”
  1995. chmod u+w dir1
  1996. 4. Ukidajte redom prava nad direktorijumom dir2 i utvrdite koja su vam prava
  1997. neophodna nad odredišnim direktorijumom da bi ste mogli da izvršite kopiranje:
  1998. 4.1 pravo čitanja “r” odredišnog direktorijuma
  1999. - ukinite pravo “r”
  2000. chmod u-r dir2
  2001. - probajte da iskopirate:
  2002. cp dir1/file1 dir2/file2
  2003. - da li je kopiranje uspešno? proverite komandom:
  2004. ls dir2
  2005. - ukoliko je kopiranje uspešno, obrišite kopiju
  2006. rm dir2/file2
  2007. - ako nije uspešno, znači da je to pravo (read) bilo potrebno za kopiranje.
  2008. - dodelite ponovo sebi pravo “r”
  2009. chmod u+r dir2
  2010. 4.2. Na sličan način, proverite da li je za kopiranje potrebno pravo upisa “w” u
  2011. odredišni direktorijum.
  2012. - ukinite pravo “w”
  2013. chmod u-w dir2
  2014. - probajte da iskopirate:
  2015. 18
  2016. Contrôle d'accès du système de fichiers
  2017. cp dir1/file1 dir2/file2
  2018. - da li je kopiranje uspešno? proverite komandom:
  2019. ls dir2
  2020. - ukoliko je kopiranje uspešno, obrišite kopiju
  2021. rm dir2/file2
  2022. - ako nije uspešno, znači da je to pravo (write) bilo potrebno za kopiranje.
  2023. - dodelite ponovo sebi pravo “w”
  2024. chmod u+w dir2
  2025. 4.3. Na sličan način, proverite da li je za kopiranje potrebno pravo izvršavanja “x”
  2026. odredišnog direktorijuma.
  2027. - ukinite pravo “x”
  2028. chmod u-x dir2
  2029. - probajte da iskopirate:
  2030. cp dir1/file1 dir2/file2
  2031. - da li je kopiranje uspešno? proverite komandom:
  2032. ls dir2
  2033. - ukoliko je kopiranje uspešno, obrišite kopiju
  2034. rm dir2/file2
  2035. - ako nije uspešno, znači da je to pravo (execute) bilo potrebno za kopiranje.
  2036. - dodelite ponovo sebi pravo “x”
  2037. chmod u+x dir2
  2038. 5. Zapišite sva prava koja su vam neophodna nad izvorišnom datotekom,
  2039. direktorijumom u kojem se ona nalazi i odredišnim direktorijumom da bi ste mogli da
  2040. izvršite kopiranje datoteke.
  2041. 6. Obrišite direktorijume dir1 i dir2:
  2042. rm -rf dir1 dir2
  2043. Aktivnost 11: potrebni uslovi za pomeranje datoteke
  2044. Odredite potrebne i dovoljne uslove da nešto pomerite.
  2045. Kreirajte dva direktorijuma u svom home direktorijumu:
  2046. mkdir dir1 dir2
  2047. Kreirajte datoteku u direktorijumu dir1:
  2048. cp /etc/passwd dir1/file1
  2049. Dodelite svima sva prava nad direktorijumima:
  2050. chmod 777 dir1 dir2
  2051. 19
  2052. Contrôle d'accès du système de fichiers
  2053. Dodelite svima sva prava nad datotekom:
  2054. chmod 777 dir1/file1
  2055. Koristeći sličan postupak kao u zadatku 11. odredite prava koja su potrebna da bi
  2056. korisnik pomerio datoteku. Potrebno je da ispitate prava koja imate nad izvorišnim i
  2057. odredišnim direktorijumom i samom datotekom! SAMOSTALNO ODRADITE!
  2058. Kada završite, obrišite direktorijume dir1 i dir2:
  2059. rm -rf dir1 dir2
  2060. Aktivnost 12: potrebni uslovi za brisanje datoteke
  2061. Odredite potrebne i dovoljne uslove da nešto obrišete.
  2062. Kreirajte direktorijum u svom home direktorijumu
  2063. mkdir dir1
  2064. Kreirajte datoteku u tom poddirektorijumu
  2065. cp /etc/passwd dir1/file1
  2066. Dodelite svima sva prava nad direktorijumom:
  2067. chmod 777 dir1
  2068. Dodelite svima sva prava nad datotekom:
  2069. chmod 777 dir1/file1
  2070. Koristeći sličan postupak kao u zadatku 11. odredite prava koja su potrebna da bi
  2071. korisnik obrisao datoteku. Potrebno je da ispitate prava koja imate nad direktorijumom
  2072. u kome se datoteka nalazi. SAMOSTALNO ODRADITE!
  2073. Kada završite, obrišite direktorijum dir1:
  2074. rm -rf dir1
  2075. 5. Sticky bit i SUID
  2076. 5.1. Sticky bit (t)
  2077. Na javno dostupnim direktorijumima (kao što je /tmp) tipična prava pristupa su 777.
  2078. • Problem: svako može da briše šta god hoće u tom direktorijumu, pa i fajlove
  2079. drugog korisnika.
  2080. • Rešenje: Postavljanjem sticky bita za direktorijum uvodi se ograničenje da svaki
  2081. korisnik može obriše samo svoje datoteke u tom direktorijumu (datoteke čiji je
  2082. on vlasnik).
  2083. 20
  2084. Contrôle d'accès du système de fichiers
  2085. NAPOMENA: Da bi se postigao ovaj efekat sticky bit se dodaje isključivo direktorijumu.
  2086. Ako se doda datoteci ima drugu primenu!
  2087. Sticky bit se postavlja/ukida na dva načina:
  2088. 1. dodelom/oduzimanjem prava “t” svim vlasničkim kategorijama u simboličkom
  2089. režimu:
  2090. ls -l public_dir
  2091. -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir1
  2092. postavlja se sticky bit:
  2093. chmod +t public_dir1
  2094. ls -l public_dir1
  2095. -rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir1
  2096. ukida se sticky bit:
  2097. chmod -t public_dir1
  2098. ls -l public_dir1
  2099. -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir1
  2100. 2. navođenjem cifre “1” (ukida se cifrom “0”) pre pristupnih prava u oktalnom režimu
  2101. ls -l public_dir2
  2102. -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir2
  2103. postavlja se sticky bit:
  2104. chmod 1777 public_dir2
  2105. ls -l public_dir2
  2106. -rwxrwxrwt 1 nm nm 4096 dec 23 15:25 public_dir2
  2107. ukida se sticky bit:
  2108. chmod 0777 public_dir2
  2109. ls -l public_dir2
  2110. -rwxrwxrwx 1 nm nm 4096 dec 23 15:25 public_dir2
  2111. Aktivnost 13: sticky bit
  2112. NAPOMENA: Kreiranje korisnika I komanda su se detaljno rade na sledećoj vežbi.
  2113. Međutim, za sada su neophodne za ilustraciju sticky bit-a. Ukratko ako navedete
  2114. komandu
  2115. su george
  2116. sistem će od vas zatražiti da unesete lozinku korisnika george. Nakon toga vi
  2117. 21
  2118. Contrôle d'accès du système de fichiers
  2119. privremeno preuzimate njegov UID. Kada želite da preuzmete svoj stari identitet,
  2120. zadajete komandu:
  2121. exit
  2122. 1. Kao root korisnik kreirajte jedan direktorijum:
  2123. sudo mkdir /sticker
  2124. 2. Dajte svima sva prava nad njim:
  2125. sudo chmod 777 /sticker
  2126. 3. Postavite sticky bit
  2127. sudo chmod +t /sticker
  2128. 4. Proverite šta ste napravili:
  2129. ls -ld /sticker
  2130. Trebalo bi da dobijete nešto slično ovome:
  2131. drwxrwxrwt 2 root staff 4096 dec 23 15:25 sticker
  2132. Uočite slovo t na kraju pristupnih prava.
  2133. 5. Kreirajte dva korisnika iz grafičkog okruženje:
  2134. • korisničko ime: kor1
  2135. • lozinka: password1
  2136. • korisničko ime: kor2
  2137. • lozinka: password2
  2138. 6. Preuzmite akreditive korisnika kor1:
  2139. su – kor1
  2140. Ovde navodite lozinku korisnika kor1, dakle “password1”
  2141. Kreirajte jednu datoteku na direktorijumu /sticker:
  2142. touch /sticker/myfile
  2143. Preuzmite stare akreditive
  2144. exit
  2145. 7. Preuzmite akreditive korisnika kor2:
  2146. su – kor2
  2147. Probajte da obrišete datoteku /sticker/myfile:
  2148. rm /sticker/myfile
  2149. Da li je brisanje uspelo ? Da li bi uspelo da nema t flega? Ojasnite.
  2150. Preuzmite stare akreditive:
  2151. exit
  2152. 22
  2153. Contrôle d'accès du système de fichiers
  2154. 8. Obrišite sa akreditivnima root korisnika direktorijum /sticker:
  2155. sudo rm -rf /sticker
  2156. 5.2. SUID (s)
  2157. Ovi bitovi služe da drugi korisnici mogu da izvršavaju datoteku sa privilegijama
  2158. vlasnika, bez promene naloga.
  2159. SUID bit se postavlja/uklanja komandom chmod, tako što se kategoriji vlasnika
  2160. dodaje/oduzima pravo “s”:
  2161. chmod u+s myexploit
  2162. ls -l myexploit
  2163. -rwsr-xr-x 1 root staff 2344 dec 23 15:25 myexploit
  2164. Na mestu prava “x” vlasnika nalazi se oznaka “s” programa.
  2165. U oktalnom formatu SUID pravo se dodaje navođenjem cifre 4 pre pristupnih prava
  2166. aukida se navođenjem cifre 0. :
  2167. chmod 4755 fajl
  2168. U retkim situacijama se na mestu SUID prava umesto malog s , koje pokazuje da je sve
  2169. u redu sa dozvolama, može se pojaviti veliko S. To znači da je SUID pravo podešeno ali
  2170. da vlasnik iz nekog razloga nema x pravo. To znači da da ni SUID pravo neće imati
  2171. nikakvog smisla.
  2172. VAŽNA NAPOMENA: Jako je glupo davati SUID komandama čiji je vlasnik root a koje se
  2173. mogu iskoristiti na destruktivan način – bilo namerno, bilo slučajno. S druge strane,
  2174. zgodno je da npr komandama za arhiviranje ili update sistema zalepite SUID bit.
  2175. Aktivnost 14: SUID
  2176. 1. Otvorite terminal i prijavite se kao korisnik kor1:
  2177. su - kor1
  2178. Ovde navodite lozinku korisnika kor1, dakle “password1”
  2179. - Pređite na home direktorijum
  2180. cd
  2181. - Kreirajte jednu datoteku
  2182. cp /bin/cp mycopy1
  2183. - Dajte svima pravo izršavanja
  2184. 23
  2185. Contrôle d'accès du système de fichiers
  2186. chmod a+x mycopy1
  2187. - Postavite SUID bit
  2188. chmod u+s mycopy1
  2189. - Proverite šta ste uradili
  2190. ls -l mycopy1
  2191. Objasnite čiji se šta se dešava ako neki korisnik pokrene datoteku mycopy1. Ovo je
  2192. kopija datoeke cp, dakle to je program za kopiranje datoteka.
  2193. 2. Iskopirajte kao drugi korisnik neku datoteku u direktorijum /tmp koristeći ovu
  2194. komandu:
  2195. - Preuzmite identitet korisnika kor2
  2196. su – kor2
  2197. - Ovde navodite lozinku korisnika kor2, dakle “password1”
  2198. - Kopiranje nešto pomoću mycopy1
  2199. /home/korisnik1/mycopy1 /etc/passwd /tmp/kopija
  2200. 3. Pogledajte kopiju i analizirajte vlasništvo
  2201. ls -l /tmp/kopija
  2202. Zaključite sa čijim je akreditivima pokrenuta komanda mycopy1. To možete da odredite
  2203. tako što ćete proveriti ko je vlasnik datoteke /tmp/kopija.
  2204. ls -l /tmp/kopija
  2205. 4. Obrišite datoteku /tmp/kopija
  2206. rm /tmp kopija
  2207. 24
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement