Sunday, 18 February 2018


U prošlom članku sam pisao o SUID bitu i kako ga kroz primjere postaviti nad datotekama u Linux-u. Stoga u ovom serijalu članaka iz Linux System administracije imam namjeru ne samo da proširim svoje znanje nego i da potaknem Vas da isto učinite. U ovom kratkom članku ću ukratko objasniti šta je to SGID bit i kako ga postaviti nad datotekama u Linux-u? 

Piše: Amar Tufo
18. Februar, 2018

1. Šta je SGID bit?

Set group identification ili SGID je poseban bit koji se postavlja na datoteke ili direktorije za korisnike koji pripadaju određenoj grupi. U osnovi, SUID i SGID bit su dosta slični a jedina razlika između SUID i SGID bita je ta što za izvršavanje skripte ili bilo koje druge datoteke nad kojom je SGID bit postavljen zahtjeva se posebna dozvola grupe kojoj datoteka pripada. Veoma važno je napomenuti da SGID bit ima vrijednost 2 a nad datotekama ili folderom se postavlja komandom chmod.


2. Kako prepoznati SGID bit nad datotekama?

Veoma je važno da znate prepoznati da datoteka ili direktorij imaju SGID bit postavljen. Stoga kada prilikom prikazivanja permisija ili dozvola nad datotekama vidite malo 'l' ispred karaktera 'x' onda to pokazuje da nemate dozvolu da izvršite ili pokrenete skriptu ili datoteku. S druge strane, kao i kod SUID bita malo 's' nam govori da je SGID bit postavljen (vidi sliku 2).


Slika 1: Prikaz default permisija nad datotekom.txt
Izvor slike: /home/amar/Desktop/slika1

Gore su prikazane na slici 1 default permisije nad datoteka.txt fajlom koje sam prikazao upotrebom komande ls -l datoteka.txt. Na sljedećoj slici 2 prikazan je SGID bit.


Slika 2: Prikaz SGID bita nad datotekom.txt
Izvor slike: /home/amar/Desktop/slika2

Na slici 2 sam prikazao postavljanje SGID bita komandom chmod 2750 datoteka.txt stim što u ovom slučaju treba imati na umu da sedmica omogučava korisniku (root user) izvršavanje datoteke, njeno čitanje i pisanje dok petica daje grupi iste ovlasti ali sada pošto je SGID bit postavljen primijetit ćete da grupa nema tu dozvolu i na kraju ostali koji nemaju nikakve ovlasti (vidi sliku 3).



Slika 3: Pokretanje datoteke.txt bez dozvole grupe
Izvor slike: /home/amar/Desktop/slika3

Iako sam administrator nemam mogučnosti pokrenuti ovu datoteku zbog toga što grupa 'amar' kojoj datoteka pripada nema ovlasti jer je SGID bit postavljen. 

3. Kako postaviti SGID bit nad datotekama?

Iako sam već na slici 2 prikazao koju vrijednost koristi SGID bit i kako ga postaviti, u narednom primjeru sam napisao malu skriptu po imenu hello.sh nad kojom ću postavitiSGID bit a sadržaj ove skripte je prikazan na slici 4.


Slika 4: Sadržaj skripte po imenu hello.sh
Izvor slike: /home/amar/Desktop/slika4

Pretpostavljam da znate da ovu skriptu ne možemo pokrenuti ukoliko ne izvršimo komandu chmod +x hello.sh ali prije nego to uradimo, evo kako izgledaju permisije za ovu skriptu.


Slika 5: Prikaz default permisija skripte hello.sh
Izvor slike: /home/amar/Desktop/slika5

Slika pet prikazuje da je izvršena komanda chmod +x kako bi se ova skripta uopšte mogla izvršiti te prikaz default permisija gdje možete vidjeti da vlasnik ima mogučnost izvršavanja, čitanja i pisanja što se odnosi i na grupu dok ostali imaju mogučnost čitanja i izvršavanja. Također ćete primjetiti da skripta hello.sh pripada grupi 'amar'. 


Slika 6: Prikaz SGID bita nad skriptom hello.sh
Izvor slike: /home/amar/Desktop/slika6

Eh, sada, ovo je doista interesantan slučaj gdje su permisije nad skriptom hello.sh dosta različite kako za vlasnika datoteke, tako i za grupu te ostale. Scenario je sličan datoteci.txt gdje grupa nema ovlasti jer vidite malo 's' što nam govori da je SGID bit postavljen. Vlasnik skripte ne može da ju pokrene na standardan način bez saglasnosti jer se skripta tretira kao datoteka sa posebnim permisijama što je prikazano na slici 7. Ostali mogu izvršiti skriptu ali je ne mogu modifikovati. 


Slika 7: Pokretanje skripte hello.sh bez dozvole grupe
Izvor slike: /home/amar/Desktop/slika7

Zaključak:

SUID i SGID bit su posebni bitovi permisije nad datotekama kojima se diktiraju dozvole ili ovlasti za pokretanje datoteka ili direktorija mimo administratorskih privilegija. SGID bit je sličan SUID bitu gdje je za pokretanje datoteke, skripte ili komande potrebna ovlast grupe dok SUID bit omogučava izvršavanje datoteke ili skripte bez obzira da li je trenutni korisnik administrator ili ne. Vrijednost SGID bita je 2 a nad datotekama se postavlja koristeći komandu chmod. Prepoznaje se time što ispred 'x' karaktera u permisijama stoji malo 's'. Više o SGID bitu možete saznati i na ovom linku. Toliko od mene za sada i do narednog čitanja.

Reakcije:

0 komentari:

Post a Comment

Weather

My Twitter news

Follow me on Facebook:

Popular Posts