Thursday, 22 February 2018


Do sada sam već pisao šta je to SUID i SGID bit te kako se oni postavljaju nad datotekama u Linux-u i zašto su oni važni kada je riječ o permisijama nad korisničkim datotekama ili direktorijumima. Također sam pisao kako prepoznati bilo SUID ili SGID bit, no sada ću da ukratko kroz praktičan primjer kažem nešto i STICKY bit-u, kako ga postaviti nad direktorijumom i slično. Napomena: Ovi su članci dio mog serijala iz Linux System administracije te su kao takvi namjenjeni iskusnijim Linux korisnicima.

Piše: Amar Tufo
22. Februar, 2018

1. Šta je sticky bit?

Ukratko, sticky bit je poseban bit permisije koji se postavlja nad datotekama ili direktorijumima koji omogučava isključivo vlasniku (root korisnik) brisanje ili preimenovanje datoteke ili direktorija. Ono što je interesantno kada je riječ o sticky bit-u je i činjenica što sticky bit nije izvorno bio dio Linux-a nego je predstavljen davne 1974. godine kao dio UNIX-a. Njegova svrha je tada bila sasvim drugačija nego što je to sada slučaj. Naime, sticky bit je predstavljen u UNIX-u kao komanda koja je diktirala vrijeme izvršavanja programa, drugim riječima, vrijeme koje potrebno da se program učita u memoriju prije nego ga korisnik može koristiti. No, historija je historija, vratimo se mi Linux-u. 

2. Važnost sticky bit-a

Unutar Linux file system hijerarhije imate direktorij po imenu /tmp koji sadrži temporary datoteke. To su uglavnom datoteke koje su potrebne kako bi programi ili sistem ispravno funkcionisali. Njihovo brisanje može uzrokovati problem prilikom pokretanja sistema ili programa. Eh, ovdje dolazi sticky bit kao rješenje. Naime, postavljanjem sticky bit-a nad direktorijumom /tmp niko osim administratora ne može obrisati ovaj direktorij niti napraviti bilo koju drugu neželjenu radnju. Isti slučaj se odnosi i na korisničke podatke gdje se sticky bit može postaviti čime se može spriječiti brisanje ili nedozvoljen pristup datoteci ili direktoriju. 

Linux File system overview - Part 1 (Možda vas zanima i ovo)



3. Kako postaviti sticky bit nad datotekom ili direktorijumom?

Pošto sam opisao šta je sticky bit i koja je njegova važnost i primjena, sada ću kroz praktičan primjer da vam pokažem kako se sticky bit postavlja nad datotekom ili direktorijumom. U narednom primjeru je kreiran direktorij po imenu /data unutar kojeg se nalaze tri textualne datoteke i to datoteka1.txt, datoteka2.txt i datoteka3.txt. Zadatak ovog prvog primjera je onemogučiti brisanje ili preimenovanje bilo datoteke ili data direktorija. 


Slika 1: Prikaz default permisija direktorija data 
Izvor slike: /home/amar/Desktop/slika1


 Kao što vidite na slici 1, direktorij data je kreiran na mom Desktopu sa svojim default permisijama. Za prikaz permisija nad direktorijumom koristimo komandu ls -ld data u ovom slučaju. A na slici 2 je prikaz sadržaja direktorija sa njegove tri datoteke.


Slika 2: Prikaz default permisija sadržaja direktorija data 
Izvor slike: /home/amar/Desktop/slika2

Na slici 2 su prikazane tri datoteke koje se nalaze unutar direktorija data te su također prikazane i njihove permisije. Ja sam ove datoteke kreirao ručno komandom touch koja osim što kreira datoteke kao datoteka1.txt ona bilježi i vrijeme nastanka iste datoteke što se još naziva i time stamp. Upamtite komandu touch jer je ona jako bitna.

Sada možemo postaviti sticky bit nad direktorijumom data. Trebate znati da sticky bit ima vrijednost 1 a postavlja se slično SUID i SGID bitu komandom chmod. Vidi sliku 3.


Slika 3: Postavljanje sticky bita nad direktorijumom data
Izvor slike: /home/amar/Desktop/slika3

Sticky bit je na slici 3 postavljen komandom chmod +t data te možete vidjeti veliko 'T' u permisijama koje označava da ostali ne mogu pristupiti ovom direktoriju. Malo 't' označava da se direktoriju može pristupiti ili da se datoteka može izvršiti.


Slika 4: Brisanje direktorija data sa njegovim sadržajem
Izvor slike: /home/amar/Desktop/slika4

Na slici 4, možete vidjeti da je pokušaj brisanja direktorija /data odbijen jer je nad istim direktorijem postavljen sticky bit. Dokle god je sticky bit aktivan, nitko ne može obrisati ovaj direktorij.


Slika 5: Upisivanje tekst poruke u datoteku1.txt komandom echo
Izvor slike: /home/amar/Desktop/slika5

Sada ću vam prikazati na sljedećem primjeru postavljanje sticky bita nad datotekom, u ovom slučaju datoteka1.txt. Nemojte da vas zbuni slika 5, na njoj vidite da sam komandom echo upisao tekst poruku 'Ova datoteka ima sticky bit na sebi' u datoteka1.txt a isti sam sadržaj datoteke prikazao upotrebom komande cat.


Slika 6: Pokušaj upisivanja tekst poruke u datoteka1.txt sa sticky bitom
Izvor slike: /home/amar/Desktop/slika6

Sada možete vidjeti jako interesantan scenario gdje sam postavio sticky bit na datoteku1.txt. Pokušaj upisivanja teskt sadržaja komandom echo nije uspio jer daoteka1.txt nema ovlasti za upisivanje niti izvršavanje iste. 

Zaključak:

Sticky bit je jako koristan bit koji se postavlja u situacijama da bi se izbjegao neželjen pristup ili brisanje važnih korisničkih direktorija i njihovih fajlova. Jednom postavljen, sticky bit onemougčava brisanje direktorija i njegovog sadržaja komandom rm -rf koja ne samo da briše direktorij nego i njegov sadržaj (malo r predstavlja rekurziju, drugim riječima, brisanje sadržaja direktorija). Sticky bit ima vrijednost 1 a nad direktorijumom se postavlja komandom chmod +t direktorij ili chmod 1650 direktorij. Veliko 'T' u permisijama govori nam da nema ovlasti za izvršavanje dok malo 't' označava mogučnost izvršavanja sadržaja direktorija. Toliko od mene za sada i do čitanja.
Reakcije:

0 komentari:

Post a Comment

Weather

My Twitter news

Follow me on Facebook:

Popular Posts