Hack the shell pt.4

U prethodnom nastavku smo upoznali zamjenske znakove, filtere, te preusmjeravanje unosa i izlaza. Sad je vrijeme da se pozabavimo korisničkim dozvolama i grupama te kontrolom procesa.

 

Dozvole

Unix kao i Unixoidni operacijski sustavi, se razlikuju od ostalih operacijskih sustava ne samo po činjenici da se radi o multi-tasking operacijskim sustavima, već i po tome što su to multikorisnički sustavi.

Unix i Unixoidi su multikorisnički operativni sustavi

Unix i Unixoidi su multikorisnički operativni sustavi

 

No, što to znači? To znači da više od jednog korisnika može istovremeno koristiti računalo; dakle, ulogirani korisnik se ne mora odlogirati kako bi se drugi ulogirao – mogu zajedno koristiti računalo.

Iako vaše računalo ima samo jednu tipkovnicu i monitor, ne znači da je striktno namjenjeno jednom korisniku. Na primjer, ako je vaše računalo spojeno na Internet ili u lokalnu mrežu, ostali korisnici mu mogu pristupiti preko servisa poput Telneta ili SSH-a te tako koristiti računalo i njegove procese.

Udaljeni korisnici mogu čak i pokretati X aplikacije. Takve aplikacije će se izvršavati na vašem računalu, no vi ih nećete vidjeti, već će se one pojaviti na zaslonu udaljenog korisnika koji ih pokreće. To je jedna od odlika X.org servera. Multikorisnička podrška nije novo svojstvo Unixa, već je značajka integrirana od najranije faze njegova razvoja. Ako se sjećate okoline u kojoj je Unix razvijan, još s početka našeg druženja, tada ovo ima smisla. Prije nego su računala postala osobna bila su glasna, ogromna i centralizirana, najčešće smještena u podrumu ili na nekom katu sveučilišta s terminalima za pristup strateški postavljenim po sveučilištu. Takvo računalo je moralo podržavati multikorisnički rad. Kako bi takav način bio i praktičan, trebalo je razviti i način zaštite korisnika od ostalih korisnika. Nije se moglo dopustiti da pogreške jednog korisnika utječu na rad računala ili pak na podatke drugog korisnika. Stoga su smišljene korisničke dozvole s kojima ćemo se sada i upoznati.

  • chmod – modificira pristup dokumentu
  • su – korisnik postaje super user
  • chown – mijenja vlasništvo nad dokumentom
  • chgrp – mijenja vlasničku grupu dokumenta

 

Dozvole datoteke

Linux koristi istu shemu pristupa dokumentima i vlasništva nad njima kao i Unix.

Svaki dokument i direktorij na vašem računalu ima određena prava pristupa i korištenja za svakog korisnika i korisničke grupe korištene na vašem računalu. Korisnička prava mogu se dodjeljivati i mijenjati za svakog korisnika ili grupu posebno. Prava mogu biti dodijeljena za čitanje, pisanje, izvršavanje ili pristup nekom dokumentu ili direktoriju. Kako bi vidjeli korisnička prava nekog dokumenta koristimo naredbu ls.

 ls – l dokument.txt

Ova će nam naredba ispisati kome pripada dokument, koja prava taj korisnik ima, kojoj grupi dokument pripada, koja prava imaju pripadnici te grupe, te što s tim dokumentom mogu ostali korisnici.

chmod

Ova naredba se koristi za izmjenu dozvola datoteke ili direktorija. Za korištenje ove naredbe specificirate željenu razinu pristupa te željeni dokument kojem želite promijeniti razinu autorizacije.

Postoje dva načina putem kojih razina autorizacije može promijeniti, no ovdje ćemo proći samo jedan.

Kako bi lakše shvatili dozvole, pokušajte ih zamisliti kao serije bitova jer upravo tako ih i računalo doživljava. Evo i kako to radi:

rwx rwx rwx = 111 111 111

rw- rw- rw- = 110 110 110

rwx — — = 111 000 000

i tako dalje

rwx = 111 binarno = 7

rw- = 110 binarno = 6

r-x = 101 binarno = 5

r– = 100 binarno = 4

Ako svaki od tri seta autorizacije prikažete kao znamenku dobivate ideju kako se razine autorizacije mogu izmijeniti. Na primjer, izmijenit ćemo razinu autorizacije našoj dobro znanoj datoteci datoteka.txt. Dakle, našoj datoteci želimo dati da samo vlasnik ima pravo čitanja i izmjene te je također želimo zaštititi od drugih korisnika. To ćemo napraviti na sljedeći način:

chmod 600 datoteka.txt

U daljnjem nastavku donosim tablicu koja pokriva sve uobičajenije primjene. Za više informacija proučite manual chmod naredbe.

777 (rwxrwxrwx) Nema restrikcija, svi mogu sve.

755 (rwxr-xr-x) Vlasnik može čitati, izmjenjivati i pokretati. Ostali korisnici mogu čitati i pokretati.

700 (rwx——) Vlasnik može čitati, izvršiti i mijenjati. Ostali korisnici nemaju nikakva prava.

666 (rw-rw-rw-) Svi korisnici mogu samo čitati i izmijeniti.

644 (rw-r–r–) Vlasnik može čitati i izmijeniti, svi ostali mogu samo čitati.

600 (rw——-) Korisnik može samo čitati i izmijeniti, svi ostali korisnici nemaju nikakva prava.

 

Dozvole direktorija

Naredba chmod se također može koristiti za izmjene ovlasti nad direktorijima.

U većini slučajeva shema za izmjenu ovlasti je ista kao i kod datoteka, no izvršavanje se vrši na drugačiji način. Evo i nekoliko zgodnih primjera za direktorije.

777 (rwxrwxrwx) Nema restrikcija. Jako loša ideja.

755 (rwxr-xr-x) Vlasnik ima pun pristup, ostali mogu samo vidjeti ovaj direktorij.

700 (rwx——) Vlasnik ima sva prava, ostali korisnici ne mogu ništa.

 

Super user

Kako bi se izvršile neke radnje prilikom administriranja sustava, potrebno je postati super korisnik.

Root korisnik može sve!

Root korisnik može sve!

 

No, korisnik ne bi smio ostati ulogiran kao super korisnik (bili ste upozoreni i to ne samo od mene!).

U mnogim distribucijama postoji program koji vam daje trajan pristup super korisničkom, odnosno, korijenskom računu. Taj program se zove su. Su je kratica od switch user, međutim budući da se najčešće koristi sam, tj. bez dodatka imena korisnika, sinonim je prebacivanju u korijenski račun.

Kako bi postali super korisnik (root) jednostavno u terminal upišete su te unesete svoju root lozinku. Nakon toga ste root korisnik. Za povratak u svoj korisnički račun upišete exit ili pritisnete ctrl+d.

U nekim distribucijama, poput Ubuntua, ovaj program je maknut te se koristi druga metoda – sudo.

Sudo se koristi i kod ostalih distribucija i to za trenutno izvršavanje neke datoteke, no ne i za cijelo administriranje sustava. Prilikom unosa sudo naredbe, za razliku od naredbe su, korisnik ne unosi root lozinku već svoju korisničku lozinku. Za uspješno korištenje sudo naredbe korisnik mora biti član wheel grupe, te mora biti uređena datoteka sudoers.

 

Promjene vlasništva

Naredbom chown možete promijeniti vlasnika nekog dokumenta ili direktorija.

Evo i primjera. Želimo promijeniti vlasnika nekog dokumenta.

Za to trebamo ući u root način rada, te unijeti naredbu chown za kojom slijedi ime korisnika za kojeg želimo da bude novi vlasnik dokumenta, te samo ime dokumenta kojeg želimo dodijeliti:

chown korisničko_ime dokument

Nakon izvršavanja, naredba nas vraća u novi redak, te možemo izaći i vratiti se prijašnjoj sesiji.

Na isti način se mijenjaju i vlasništva nad direktorijima.

 

Promjene vlasništva grupa

Također se mogu mijenjati i vlasništva grupa nad datotekama. Za to se koristi naredba chgrp.

Evo i primjera:

chgrp korisnička_grupa dokument

Da bi korisnik mogao koristiti ovaj dokument mora biti član grupe kojoj dokument pripada.

 

Ovim ujedno i završavamo naše druženje kroz terminal. Možda se kasnije sretnemo još jednom, u nekoj dalekoj galaksiji ili u nekome od paralelnih univerzuma, a dotle, hvala vam na druženju i svako dobro.

Click to rate this post!
[Total: 0 Average: 0]
VN:F [1.9.22_1171]
Stari sustav ocjenjivanja
Rating: 4.7/5 (19 votes cast)
Hack the shell pt.4, 4.7 out of 5 based on 19 ratings

You may also like...

10 komentara

  1. duude napisao:

    Šteta što nema više.

  2. shicy napisao:

    “Laku noć, dame i gospodo, i ova predstava je završena…”
    Luth, veliko hvala na člancima 😉

  3. max360se napisao:

    E ovo se zove koristan članak 😀

  4. Z0K4 napisao:

    Bravo!
    U potpunosti se slažem sa sljedećim: “Šteta što nema više.” – duude

  5. perica napisao:

    koja je razlika između sudo i su?

  6. b4sh napisao:

    Super clanak samo mi nije jasno u kojem univerzumu da te sretnem Lutherus ? Izgledami kao da se oprastas ? Nadam se da grijesim .

    LP b4sh

  7. wintermute napisao:

    hvala..
    svaka cast..

  8. Mario napisao:

    Zbogom i hvala za sve ribe, Lutherusu!