Linux Professional Institute Learning Logo.
Preskoči na glavni sadržaj
  • Home
    • Svi resursi
    • LPI materijali za učenje
    • Postanite saradnik
    • Izdavači partneri
    • Postanite izdavački partner
    • O nama
    • FAQ
    • Saradnici
    • Roadmap
    • Kontaktiraj nas
  • LPI.org
5.3 Lekcija 1
Tema 1: Linux zajednica i open sors karijera
1.1 Evolucija Linux-a i popularni operativni sistemi
  • 1.1 Lekcija 1
1.2 Glavne open sors aplikacije
  • 1.2 Lekcija 1
1.3 Softver otvorenog koda i licenciranje
  • 1.3 Lekcija 1
1.4 ICT vještine i rad sa Linux-om
  • 1.4 Lekcija 1
Tema 2: Kretanje kroz Linux sistem
2.1 Osnove komande linije
  • 2.1 Lekcija 1
  • 2.1 Lekcija 2
2.2 Upotreba komande linije u traženju pomoći
  • 2.2 Lekcija 1
2.3 Korištenje direktorija i izlistavanje podataka
  • 2.3 Lekcija 1
  • 2.3 Lekcija 2
2.4 Kreiranje, premještanje i brisanje podataka
  • 2.4 Lekcija 1
Tema 3: Moć komandne linije
3.1 Arhiviranje podataka uz pomoć komande linije
  • 3.1 Lekcija 1
3.2 Pretraživanje i ekstrakcija informacija iz podataka
  • 3.2 Lekcija 1
  • 3.2 Lekcija 2
3.3 Pretvaranje komandi u skriptu
  • 3.3 Lekcija 1
  • 3.3 Lekcija 2
Tema 4: Linux operativni sistem
4.1 Odabir operativnog sistema
  • 4.1 Lekcija 1
4.2 Razumijevanje računalnog hardvera
  • 4.2 Lekcija 1
4.3 Gdje se smještaju podaci
  • 4.3 Lekcija 1
  • 4.3 Lekcija 2
4.4 Računalo na mreži
  • 4.4 Lekcija 1
Tema 5: Sigurnost i prava nad podacima
5.1 Osnovna sigurnost i identifikacija vrste korisnika
  • 5.1 Lekcija 1
5.2 Kreiranje korisnika i grupa
  • 5.2 Lekcija 1
5.3 Upravljanje pravima i ovlastima nad podacima
  • 5.3 Lekcija 1
5.4 Specijalni direktoriji i podaci
  • 5.4 Lekcija 1
How to get certified
  1. Tema 5: Sigurnost i prava nad podacima
  2. 5.3 Upravljanje pravima i ovlastima nad podacima
  3. 5.3 Lekcija 1

5.3 Lekcija 1

Sertifikat:

Linux Essentials

Verzija:

1.6

Tema:

5 Sigurnost i dozvole nad podacima

Cilj:

5.3 Upravljanje dozvolama za datoteke i vlasništvom

Lekcija:

1 od 1

Uvod

Budući da je sistem za više korisnika, Linuxu je potreban neki način da prati ko je vlasnik svake datoteke i da li je korisniku dopušteno da izvršava radnje na toj datoteci. Ovo je da bi se osigurala privatnost korisnika koji bi možda željeli zadržati povjerljivost sadržaja svojih datoteka, kao i da bi se osigurala saradnja tako što će određene datoteke učiniti dostupnima više korisnika.

Ovo se radi kroz sistem dozvola na tri nivoa: svaki fajl na disku je u vlasništvu korisnika i korisničke grupe i ima tri skupa dozvola: jednu za svog vlasnika, jednu za grupu koja je vlasnik datoteke i jednu za sve ostale. U ovoj lekciji ćete naučiti kako tražiti dozvole za datoteku i kako njima manipulirati.

Upit za informacije o datotekama i direktorijima

Komanda ls se koristi za prikaz sadržaja bilo kojeg direktorija. U ovom osnovnom obliku, sve što dobijete su nazivi datoteka:

$ ls
Another_Directory  picture.jpg  text.txt

Ali postoji mnogo više informacija koje su dostupne za svaku datoteku, uključujući tip, veličinu, vlasništvo i još mnogo toga. Da biste vidjeli ove informacije, morate zatražiti od ls listing “duže forme”, koristeći parametar -l:

$ ls -l
total 536
drwxrwxr-x 2 carol carol   4096 Dec 10 15:57 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt

Svaka kolona gore iznad na izlazu ima značenje:

  • prva kolona na listi prikazuje tip datoteke i dozvole.

    Na primjer, na drwxrwxr-x:

    • Prvi znak, d, označava tip datoteke.

    • Sljedeća tri znaka, rwx, označavaju dozvole za vlasnika datoteke, koji se također naziva user ili u.

    • Sljedeća tri znaka, rwx, označavaju dozvole grupe koja posjeduje datoteku, koja se također naziva g.

    • Posljednja tri znaka, r-x, označavaju dozvole za bilo koga drugog, također poznate kao others ili o.

  • Druga kolona označava broj tvrdih veza (eng. hard links) koje upućuju na tu datoteku. Za direktorij, ovo znači broj poddirektorija, plus vezu na sebe (.) i roditeljski direktorij (..).

  • Treća i četvrta kolona prikazuju informacije o vlasništvu: odnosno korisnika i grupe koji posjeduju datoteku.

  • Peta prikazuje veličinu datoteka u bajtovima.

  • Šesta kolona prikazuje tačan datum i vrijeme, ili timestamp, kada je datoteka posljednji put modificirana.

  • Sedma i posljednja kolona prikazuju naziv datoteke.

Ako želite vidjeti veličine datoteka u “ljudski čitljivom” formatu, dodajte parametar -h u ls. Datoteke manje od jednog kilobajta imat će veličinu prikazanu u bajtovima. Datoteke s više od jednog kilobajta i manje od jednog megabajta imat će K dodano nakon veličine, što ukazuje da je veličina u kilobajtima. Isto slijedi za veličine datoteka u rasponima megabajta (M) i gigabajta (G):

$ ls -lh
total 1,2G
drwxrwxr-x 2 carol carol 4,0K Dec 10 17:59 Another_Directory
----r--r-- 1 carol carol    0 Dec 11 10:55 foo.bar
-rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
-rw------- 1 carol carol 528K Dec 10 10:43 picture.jpg
---xr-xr-x 1 carol carol   33 Dec 11 10:36 test.sh
-rwxr--r-- 1 carol carol 1,9K Dec 20 18:13 text.txt
-rw-rw-r-- 1 carol carol 2,6M Dec 11 22:14 Zipped.zip

Da biste prikazali samo informacije o određenom skupu datoteka, dodajte nazive ovih datoteka ls:

$ ls -lh HugeFile.zip test.sh
total 1,2G
-rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
---xr-xr-x 1 carol carol   33 Dec 11 10:36 test.sh

Šta je sa direktorijima?

Ako pokušate zatražiti informacije o direktoriju koristeći ls -l, umjesto toga će vam pokazati popis sadržaja direktorija:

$ ls -l Another_Directory/
total 0
-rw-r--r-- 1 carol carol 0 Dec 10 17:59 another_file.txt

Da biste to izbjegli i zatražili informacije o samom direktoriju, dodajte parametar -d u ls:

$ ls -l -d Another_Directory/
drwxrwxr-x 2 carol carol 4096 Dec 10 17:59 Another_Directory/

Prikaz skrivenih datoteka

Spisak direktorija koji smo prikazali koristeći ls -l prije je nepotpun:

$ ls -l
total 544
drwxrwxr-x 2 carol carol   4096 Dec 10 17:59 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt

U tom direktoriju postoje još tri datoteke, ali su skrivene. Na Linuxu, datoteke čije ime počinje tačkom (.) su automatski skrivene. Da bismo ih vidjeli, moramo dodati parametar -a u ls:

$ ls -l -a
total 544
drwxrwxr-x 3 carol carol   4096 Dec 10 16:01 .
drwxrwxr-x 4 carol carol   4096 Dec 10 15:56 ..
drwxrwxr-x 2 carol carol   4096 Dec 10 17:59 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt
-rw-r--r-- 1 carol carol      0 Dec 10 16:01 .thisIsHidden

Datoteka .thisIsHidden je jednostavno skrivena jer njeno ime počinje sa ..

Međutim, direktoriji . i .. su posebni. . je pokazivač na trenutni direktorij, dok je .. pokazivač na nadređeni direktorij (direktorij koji sadrži trenutni direktorij). U Linuxu, svaki direktorij sadrži barem ova dva posebna direktorija.

Tip

Možete kombinirati više parametara za ls (i mnoge druge Linux komande). ls -l -a može se, na primjer, napisati kao ls -la.

Razumijevanje tipova datoteka

Već smo spomenuli da prvo slovo u svakom izlazu ls -l opisuje tip datoteke. Tri najčešće vrste datoteka su:

- (normalna datoteka)

Datoteka može sadržavati podatke bilo koje vrste. Datoteke (fajlovi) se mogu mijenjati, premještati, kopirati i brisati.

d (direktorij)

Direktorij sadrži druge datoteke ili direktorije i pomaže u organizaciji sistema datoteka. Tehnički, direktoriji su posebna vrsta datoteke.

l (soft link)

Ovaj “file” je pokazivač na drugu datoteku (fajl) ili direktorij unutar sistema datoteka.

Pored ovih, postoje tri druge vrste datoteka za koje biste barem trebali znati, ali su izvan okvira ove lekcije:

b (blok uređaj)

Ova datoteka označava virtuelni ili fizički uređaj, obično diskove ili druge vrste uređaja za pohranu. Na primjer, prvi tvrdi disk u sistemu može biti predstavljen sa /dev/sda.

c (znakovni uređaj)

Ova datoteka označava virtuelni ili fizički uređaj. Terminali (poput glavnog terminala na /dev/ttyS0) i serijski portovi su uobičajeni primjeri znakovnih uređaja.

s (soket)

Soketi služe kao "provodnici" koji prenose informacije između dva programa.

Warning

Nemojte mijenjati nijednu dozvolu na blok uređajima, znakovnim uređajima ili soketima, osim ako znate što radite. Ovo može spriječiti vaš sistem u radu!

Razumijevanje dozvola

U izlazu ls -l dozvole su prikazane odmah nakon tipa datoteke, kao tri grupe od po tri znaka, redom r, w i x. Evo šta oni znače. Imajte na umu da crtica - predstavlja nedostatak određene dozvole.

Dozvole nad datotekama

r

Označava read i ima oktalnu vrijednost 4 (ne brinite, uskoro ćemo razgovarati o oktalima). To znači dozvolu za otvaranje datoteke i čitanje njenog sadržaja.

w

Označava write i ima oktalnu vrijednost 2. To znači dozvolu za uređivanje ili brisanje datoteke.

x

Označava execute i ima oktalnu vrijednost 1. To znači da se datoteka može pokrenuti kao izvršna datoteka ili skripta.

Tako se, na primjer, datoteka s dozvolama rw- može čitati i upisivati, ali se ne može izvršiti.

Dozvole nad direktorijima

r

Označava read i ima oktalnu vrijednost 4. To znači dozvolu za čitanje sadržaja direktorija, kao što su nazivi datoteka. Ali to ne implicira dozvolu za čitanje samih fajlova.

w

Označava write i ima oktalnu vrijednost 2. To znači dozvolu za kreiranje ili brisanje datoteka u direktoriju ili promjenu njihovih imena, dozvola i vlasnika. Ako korisnik ima dozvolu za pisanje u direktorij, korisnik može promijeniti dozvole bilo koje datoteke u direktoriju, čak i ako korisnik nema dozvole za datoteku ili ako je datoteka u vlasništvu drugog korisnika.

x

Označava execute i ima oktalnu vrijednost 1. To znači dozvolu za ulazak u direktorij, ali ne i za izlistavanje njegovih datoteka (za to je potrebna dozvola r).

Posljednji dio o direktorijima može zvučati pomalo zbunjujuće. Zamislimo, na primjer, da imate direktorij pod nazivom Another_Directory, sa sljedećim dozvolama:

$ ls -ld Another_Directory/
d--xr-xr-x 2 carol carol 4,0K Dec 20 18:46 Another_Directory

Također zamislite da unutar ovog direktorija imate šel (eng. shell) skriptu pod nazivom hello.sh sa sljedećim dozvolama:

-rwxr-xr-x 1 carol carol 33 Dec 20 18:46 hello.sh

Ako ste korisnik carol i pokušate prikazati sadržaj direktorija Another_Directory, dobit ćete poruku o grešci, jer vaš korisnik nema dozvolu čitanja za taj direktorij:

$ ls -l Another_Directory/
ls: cannot open directory 'Another_Directory/': Permission denied

Međutim, korisnik carol ima dozvole za izvršavanje, što znači da može ući u direktorij. Stoga, korisnik carol može pristupiti datotekama unutar direktorija, sve dok ima ispravne dozvole za dotični fajl. U ovom primjeru, korisnik ima pune dozvole za skriptu hello.sh, tako da može pokrenuti skriptu, čak i ako ne može pročitati sadržaj direktorija koji ga sadrži. Sve što je potrebno je kompletno ime datoteke.

$ sh Another_Directory/hello.sh
Hello LPI World!

Kao što smo ranije rekli, dozvole se određuju u nizu: prvo za vlasnika datoteke, zatim za vlasničke grupe, a zatim za druge korisnike. Kad god neko pokuša izvršiti radnju na datoteci, dozvole se provjeravaju na isti način. Prvo sistem provjerava da li trenutni korisnik posjeduje datoteku, a ako je to tačno, primjenjuje samo prvi set dozvola. U suprotnom, provjerava da li trenutni korisnik pripada grupi koja posjeduje datoteku. U tom slučaju, primjenjuje samo drugi skup dozvola. U svakom drugom slučaju, sistem će primijeniti treći set dozvola. To znači da ako je trenutni korisnik vlasnik datoteke, efikasne su samo vlasničke dozvole, čak i ako su grupne ili druge dozvole dopuštenije od dozvola vlasnika.

Izmjena dozvola nad datotekama

Komanda chmod se koristi za izmjenu dozvola za datoteku i uzima najmanje dva parametra: prvi opisuje koje dozvole treba promijeniti, a drugi ukazuje na datoteku ili direktorij u kojem će se promjena izvršiti. Međutim, dozvole za promjenu mogu se opisati na dva različita načina, ili “modes”.

Prvi, nazvan symbolic mode nudi finu kontrolu, omogućavajući vam da dodate ili opozovete jednu dozvolu bez modifikacije drugih na setu. Drugi način rada, nazvan numerički način, lakši je za pamćenje i brži za korištenje ako želite postaviti sve vrijednosti dozvola odjednom.

Oba moda će imati jednak rezultat.Tako, na primjer, komande:

$ chmod ug+rw-x,o-rwx text.txt

i

$ chmod 660 text.txt

će proizvesti potpuno isti izlaz, datoteka sa postavljenim dozvolama:

-rw-rw---- 1 carol carol  765 Dec 20 21:25 text.txt

Sada, pogledajmo kako svaki mod radi.

Simbolički način

Kada opisujete koje dozvole promijeniti u simboličkom načinu, prvi znak(ovi) označava(ju) čije ćete dozvole mijenjati: one za korisnika (u), za grupu (g), za ostale (o) i/ili za sva tri zajedno (a).

Zatim morate reći komandi šta da radi: možete dati dozvolu (+), opozvati dozvolu (-) ili je postaviti na određenu vrijednost (=).

Na kraju, specificirate na koju dozvolu želite utjecati: čitanje (r), pisanje (w) ili izvršavanje (x).

Na primjer, zamislite da imamo datoteku pod nazivom text.txt sa sljedećim postavljenim dozvolama:

$ ls -l text.txt
-rw-r--r-- 1 carol carol 765 Dec 20 21:25 text.txt

Ako želite dodijeliti dozvole za pisanje članovima grupe koji posjeduju datoteku, koristili biste parametar g+w. Lakše je ako razmislite o tome na ovaj način: “Za grupu (g), dodijelite (+) dozvole za pisanje (w)”. Dakle, komanda bi bila:

$ chmod g+w text.txt

Pogledajmo rezultat sa ls:

$ ls -l text.txt
-rw-rw-r-- 1 carol carol 765 Dec 20 21:25 text.txt

Ako želite ukloniti dozvole za čitanje za vlasnika iste datoteke, razmislite o tome kao: “Za korisnika (u) opozovi (-), dozvole za čitanje (r)”. Dakle, parametar je u-r, ovako:

$ chmod u-r text.txt
$ ls -l text.txt
--w-rw-r-- 1 carol carol 765 Dec 20 21:25 text.txt

Šta ako želimo da postavimo dozvole tačno kao rw- za sve? Zatim razmislite o tome kao: “Za sve (a), postavite tačno (=), pročitajte (r), napišite (w) i ne izvršite (-)”. Dakle:

$ chmod a=rw- text.txt
$ ls -l text.txt
-rw-rw-rw- 1 carol carol 765 Dec 20 21:25 text.txt

Naravno, moguće je modificirati više dozvola u isto vrijeme. U ovom slučaju, odvojite ih zarezom (,):

$ chmod u+rwx,g-x text.txt
$ ls -lh text.txt
-rwxrw-rw- 1 carol carol 765 Dec 20 21:25 text.txt

Gornji primjer se može čitati kao: “Za korisnika (u), dodijelite (+) dozvole za čitanje, pisanje i izvršavanje (rwx), za grupu (g) opozovite (- ), dozvolu izvršavanja (x)”.

Kada se pokrene u direktoriju, chmod mijenja samo dozvole direktorija. chmod ima rekurzivni način rada, koristan kada želite promijeniti dozvole za “sve datoteke unutar direktorija i njegovih poddirektorija”. Da biste ovo koristili, dodajte parametar -R iza naziva komande i prije dozvole za promjenu, na sljedeći način:

$ chmod -R u+rwx Another_Directory/

Ova komanda se može čitati kao: "`Rekurzivno (-R), za korisnika (u), dodijelite (+) dozvole za čitanje, pisanje i izvršavanje (rwx)".

Warning

Budite oprezni i razmislite dvaput prije korištenja sviča -R, jer je lako promijeniti dozvole za datoteke i direktorije koje ne želite mijenjati, posebno za direktorije s velikim brojem datoteka i poddirektorija.

Numerički način

U numeričkom načinu, dozvole su specificirane na drugačiji način: kao trocifrena numerička vrijednost na oktalnoj notaciji, numerički sistem sa bazom 8.

Svaka dozvola ima odgovarajuću vrijednost, a one su navedene u sljedećem redoslijedu: prvo dolazi čitanje (r), što je 4, zatim pisanje (w), što je 2 i posljednje se izvršava (` x`), predstavljen sa 1. Ako nema dozvole, koristite vrijednost nula (0). Dakle, dozvola za rwx bi bila 7 (4+2+1), a r-x bi 5 (4+0+1).

Prva od tri znamenke u skupu dozvola predstavlja dozvole za korisnika (u), druga za grupu (g), a treća za ostale (o). Ako želimo da postavimo dozvole za datoteku na rw-rw----, oktalna vrijednost bi bila 660:

$ chmod 660 text.txt
$ ls -l text.txt
-rw-rw---- 1 carol carol 765 Dec 20 21:25 text.txt

Osim toga, sintaksa u numeričkom načinu je ista kao u simboličkom načinu, prvi parametar predstavlja dozvole koje želite da promjenite, a drugi ukazuje na datoteku ili direktorij gde će se promjena izvršiti.

Tip

Ako je vrijednost dozvole odd, datoteka je sigurno izvršna!

Koju sintaksu koristiti? numerički način se preporučuje ako želite promijeniti dozvole na određenu vrijednost, na primjer 640 (rw- r-- ---).

Simbolički način je korisniji ako želite da okrenete samo određenu vrijednost, bez obzira na trenutne dozvole za datoteku. Na primjer, mogu dodati dozvole za izvršavanje za korisnika koristeći samo chmod u+x script.sh bez obzira na, ili čak dodirujući, trenutne dozvole za grupu i druge.

Promjena vlasnika datoteka

Komanda chown se koristi za promjenu vlasništva datoteke ili direktorija. Sintaksa je prilično jednostavna:

chown username:groupname filename

Na primjer, pogledajmo datoteku text.txt:

$ ls -l text.txt
-rw-rw---- 1 carol carol 1881 Dec 10 15:57 text.txt

Korisnik koji posjeduje datoteku je carol, a grupa je također carol. Sada, modificirajmo grupu koja posjeduje datoteku u neku drugu grupu, kao što je students:

$ chown carol:students text.txt
$ ls -l text.txt
-rw-rw---- 1 carol students 1881 Dec 10 15:57 text.txt

Imajte na umu da korisnik koji posjeduje datoteku ne mora pripadati grupi koja posjeduje datoteku. U gornjem primjeru, korisnik carol ne mora biti član grupe students. Međutim, ona mora biti član grupe da bi prenijela grupno vlasništvo nad datotekom na tu grupu.

Korisnik ili grupa se mogu izostaviti ako ih ne želite promijeniti. Dakle, da promijenite samo grupu koja posjeduje datoteku, koristite chown :students text.txt. Za promjenu samo korisnika, komanda bi bila chown carol text.txt. Alternativno, možete koristiti komandu chgrp student text.txt da promijenite samo grupu.

Osim ako niste sistemski administrator (root), ne možete promijeniti vlasništvo nad datotekom u vlasništvu drugog korisnika ili grupe kojoj ne pripadate. Ako pokušate to učiniti, dobit ćete poruku o grešci Operacija nije dozvoljena.

Upit grupa

Prije promjene vlasništva nad datotekom, moglo bi biti korisno znati koje grupe postoje na sistemu, koji su korisnici članovi grupe i kojim grupama korisnik pripada. Ti zadaci se mogu izvršiti s dvije komande, groups i groupmems.

Da vidite koje grupe postoje na vašem sistemu, jednostavno upišite groups:

$ groups
carol students cdrom sudo dip plugdev lpadmin sambashare

A ako želite znati kojoj grupi korisnik pripada, dodajte korisničko ime kao parametar:

$ groups carol
carol : carol students cdrom sudo dip plugdev lpadmin sambashare

Da biste učinili obrnuto, prikazujući koji korisnici pripadaju grupi, koristite groupmems. Parametar -g specificira grupu, a -l će navesti sve njene članove:

$ sudo groupmems -g cdrom -l
carol
Tip

groupmems se može pokrenuti samo kao root, administrator sistema. Ako trenutno niste prijavljeni kao root, dodajte sudo prije komande.

Specijalne dozvole

Osim dozvola za čitanje, pisanje i izvršavanje za korisnika, grupu i druge (ostale), svaka datoteka može imati tri druge specijalne dozvole koje mogu promijeniti način na koji direktorij radi ili kako se program izvodi. Mogu se specificirati u simboličkom ili numeričkom načinu, a glase kako slijedi:

Ljepljivi bit

Lepljivi bit (eng. sticky bit), koji se takođe naziva zastavica za ograničeno brisanje, ima oktalnu vrednost 1 i u simboličkom načinu je predstavljen sa t u okviru dozvole drugog. Ovo se odnosi samo na direktorije, a na Linuxu sprječava korisnike da uklone ili preimenuju datoteku u direktoriju osim ako oni ne posjeduju tu datoteku ili direktorij.

Direktoriji sa postavljenim ljepljivim bitom prikazuju t koji zamjenjuje x na dozvolama za ostale na izlazu ls -l:

$ ls -ld Sample_Directory/
drwxr-xr-t 2 carol carol 4096 Dec 20 18:46 Sample_Directory/

U numeričkom načinu rada, posebne dozvole su specificirane korištenjem “4-cifrene notacije”, pri čemu prva znamenka predstavlja specijalnu dozvolu za djelovanje. Na primjer, da postavite ljepljivi bit (vrijednost 1) za direktorij ` u numeričkom načinu, s dozvolama 755, komanda bi bila:

$ chmod 1755 Another_Directory
$ ls -ld Another_Directory
drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory

Postavi GID

Postavi GID, također poznat kao SGID ili Set Group ID bit, ima oktalnu vrijednost 2 i u simboličkom načinu je predstavljen s na dozvolama grupa. Ovo se može primijeniti na izvršne datoteke ili direktorije. Na izvršnim datotekama, dodijelit će procesu koji je rezultat izvršavanja datoteke pristup privilegijama grupe koja posjeduje datoteku. Kada se primjeni na direktorije, učiniće da svaka datoteka ili direktorij kreiran pod njim naslijedi grupu iz roditeljskog direktorija.

Datoteke i direktoriji sa SGID bitom pokazuju s koji zamjenjuje x na dozvolama za grupe na izlazu ls -l:

$ ls -l test.sh
-rwxr-sr-x 1 carol carol 33 Dec 11 10:36 test.sh

Da biste dodali SGID dozvole datoteci u simboličkom načinu rada, komanda bi bila:

$ chmod g+s test.sh
$ ls -l test.sh
-rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh

Sljedeći primjer će vam pomoći da bolje razumijete efekte SGID-a na direktorij. Pretpostavimo da imamo direktorij pod nazivom Sample_Directory, u vlasništvu korisnika carol i grupe users, sa sljedećom strukturom dozvola:

$ ls -ldh Sample_Directory/
drwxr-xr-x 2 carol users 4,0K Jan 18 17:06 Sample_Directory/

Sada se prebacimo u ovaj direktorij i, koristeći komandu touch, kreiramo praznu datoteku unutar njega. Rezultat bi bio:

$ cd Sample_Directory/
$ touch newfile
$ ls -lh newfile
-rw-r--r-- 1 carol carol 0 Jan 18 17:11 newfile

Kao što vidimo, fajl je u vlasništvu korisnika carol i grupe carol. Ali, ako bi direktorij imao postavljenu SGID dozvolu, rezultat bi bio drugačiji. Prvo, dodajmo SGID bit u Sample_Directory i provjerimo rezultate:

$ sudo chmod g+s Sample_Directory/
$ ls -ldh Sample_Directory/
drwxr-sr-x 2 carol users 4,0K Jan 18 17:17 Sample_Directory/

s na grupnim dozvolama označava da je SGID bit postavljen. Sada se prebacimo na ovaj direktorij i opet kreirajmo praznu datoteku komandom touch:

$ cd Sample_Directory/
$ touch emptyfile
$ ls -lh emptyfile
 -rw-r--r-- 1 carol users 0 Jan 18 17:20 emptyfile

Kao što vidimo, grupa koja posjeduje datoteku je users. To je zato što je SGID bit učinio da datoteka naslijedi vlasnika grupe svog roditeljskog direktorija, a to je users.

Postavi UID

SUID, također poznat kao Set User ID, ima oktalnu vrijednost 4 i predstavljen je s na user dozvolama u simboličkom načinu. Primjenjuje se samo na datoteke i njegovo ponašanje je slično SGID bitu, ali proces će se pokrenuti s privilegijama user koji posjeduje datoteku. Datoteke sa SUID bitom prikazuju s koji zamjenjuje x na dozvolama za korisnika na izlazu ls -l:

$ ls -ld test.sh
-rwsr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

Možete kombinirati više posebnih dozvola u jednom parametru tako što ćete ih dodati zajedno. Dakle, da postavite SGID (vrijednost 2) i SUID (vrijednost 4) u numeričkom načinu za skriptu test.sh sa dozvolama 755, ukucali biste:

$ chmod 6755 test.sh

Rezultat je sljedeći:

$ ls -lh test.sh
-rwsr-sr-x 1 carol carol 66 Jan 18 17:29 test.sh
Tip

Ako vaš terminal podržava boju, a ovih dana većina njih podržava, možete brzo vidjeti da li su ove posebne dozvole postavljene tako što ćete pogledati izlaz ls -l. Za ljepljivi bit, ime direktorija može biti prikazano crnim fontom s plavom pozadinom. Isto važi i za datoteke sa SGID (žuta pozadina) i SUID (crvena pozadina) bitovima. Boje se mogu razlikovati ovisno o tome koju Linux distribuciju i postavke terminala koristite.

Vođene vježbe

  1. Kreirajte direktorij pod nazivom emptydir koristeći komandu mkdir emptydir. Sada, koristeći ls, navedite dozvole za direktorij emptydir.

  2. Kreirajte praznu datoteku pod nazivom emptyfile sa komandom touch emptyfile. Sada, koristeći chmod sa simboličkom notacijom, dodajte dozvole za izvršavanje za vlasnika datoteke emptyfile i uklonite dozvole za pisanje i izvršavanje za sve ostale. Uradite ovo koristeći samo jednu komandu chmod.

  1. Koje će biti dozvole za datoteku pod nazivom text.txt nakon što koristite komandu chmod 754 text.txt?

  2. Pretpostavimo da je datoteka pod nazivom test.sh shell skripta sa sljedećim dozvolama i vlasništvom:

    -rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh
    • Koje su dozvole za vlasnika datoeke?

      *Ako korisnik john pokrene ovu skriptu, pod kojim će se privilegijama korisnika ona pokrenuti?

    • Koristeći numeričku notaciju, koja bi trebala biti sintaksa chmod za “poništavanje” posebne dozvole dodijeljene ovoj datoteci?

  3. Razmotrite sljedeću datoteku:

    $ ls -l /dev/sdb1
    brw-rw---- 1 root disk 8, 17 Dec 21 18:51 /dev/sdb1

    Koje vrste je datoteka sdb1? I ko može pisati u nju?

  4. Razmotrite sljedeće 4 datoteke:

    drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory
    ----r--r-- 1 carol carol    0 Dec 11 10:55 foo.bar
    -rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
    drwxr-sr-x 2 carol users 4,0K Jan 18 17:26 Sample_Directory

    Zapišite odgovarajuće dozvole za svaku datoteku i direktorij koristeći numeričku 4-cifrenu notaciju.

    Another_Directory
    foo.bar
    HugeFile.zip
    Sample_Directory

Istraživačke vježbe

  1. Pokušajte ovo na terminalu: kreirajte praznu datoteku pod nazivom emptyfile sa komandom touch emptyfile. Sada “zero out” dozvole za datoteku sa chmod 000 emptyfile. Šta će se dogoditi ako promijenite dozvole za emptyfile tako što ćete proslijediti samo one vrijednost za chmod u numeričkom načinu, kao što je chmod 4 emptyfile? Šta ako koristimo dva, kao što je chmod 44 emptyfile? Šta možemo naučiti o načinu na koji chmod čita numeričku vrijednost?

  2. Možete li izvršiti datoteku za koju imate dopuštenje za izvršavanje, ali ne i za čitanje (--x)? Zašto ili zašto ne?

  3. Razmotrite dozvole za privremeni direktorij na Linux sistemu, /tmp:

    $ ls -l /tmp
    drwxrwxrwt  19 root root  16K Dec 21 18:58 tmp

    Korisnik, grupa i ostali imaju pune dozvole. Ali može li običan korisnik izbrisati bilo koje datoteke unutar ovog direktorija? Zašto je ovo?

  4. Datoteka pod nazivom test.sh ima sljedeće dozvole: -rwsr-xr-x, što znači da je SUID bit postavljen. Sada pokrenite sljedeće komande:

    $ chmod u-x test.sh
    $ ls -l test.sh
    -rwSr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

    Šta smo uradili? Šta znači veliko slovo S?

  5. Kako biste kreirali direktorij pod nazivom Box gdje su sve datoteke automatski u vlasništvu grupe users, a može ih izbrisati samo korisnik koji ih je kreirao?

Sažetak

Kao sistem za više korisnika, Linuxu je potreban način da prati ko je vlasnik i ko može pristupiti svakoj datoteci. Ovo se radi kroz sistem dozvola na tri nivoa, a u ovoj lekciji smo naučili sve o tome kako ovaj sistem funkcioniše.

U ovoj lekciji naučili ste kako koristiti ls za dobivanje informacija o dozvolama za datoteke, kako kontrolirati ili promijeniti ko može kreirati, brisati ili modificirati datoteku pomoću chmod, i u numeričkom i simboličkom zapisu i kako promijeniti vlasništvo nad datotekama sa chown i chgrp.

Sljedeće komande su raspravljane u ovoj lekciji:

ls

Prikaži datoteke, opciono uključujući detalje kao što su dozvole.

chmod

Promijeni dozvole nad podacima ili direktorijima.

chown

Promijeni korisnika ili grupu datoteke ili direktorija.

chgrp

Promijeni vlasničku grupu datoteke ili direktorija.

Odgovori na vođene vježbbe

  1. Kreirajte direktorij pod nazivom emptydir koristeći komandu mkdir emptydir. Sada, koristeći ls, navedite dozvole za direktorij emptydir.

    Dodajte parametar -d u ls da vidite atribute datoteke direktorija, umjesto da navodite njegov sadržaj. Stoga je odgovor:

    ls -l -d emptydir

    Bonus bodovi ako ste spojili dva parametra u jedan, kao u ls -ld emptydir.

  2. Kreirajte praznu datoteku pod nazivom emptyfile sa komandom touch emptyfile. Sada, koristeći chmod sa simboličkom notacijom, dodajte dozvole za izvršavanje za vlasnika datoteke emptyfile i uklonite dozvole za pisanje i izvršavanje za sve ostale. Uradite ovo koristeći samo jednu komandu chmod.

    Razmislite o ovome na sljedeći način:

    *“Za korisnika koji posjeduje fajl (u) dodajte (+) izvršni (x) dozvole”, pa u+x. * “Za grupu (g) i druge korisnike (o), uklonite (-), upišite (w) i izvršite (x) dozvole”, pa go-wx.

    + Da bismo kombinovali ova dva skupa dozvola, između njih dodajemo zarez. Dakle, konačni rezultat je:

    +

    chmod u+x,go-wx emptyfile
  3. Koje će biti dozvole za datoteku pod nazivom text.txt nakon što koristite komandu chmod 754 text.txt?

    Zapamtite da u numeričkom zapisu svaka cifra predstavlja skup od tri dozvole, od kojih svaka ima odgovarajuću vrijednost: read je 4, write je 2, execute je 1 i nijedna dozvola je 0. Dobijamo vrijednost za cifru dodavanjem odgovarajućih vrijednosti za svaku dozvolu. 7 je 4+2+1, ili rwx, 5 je 4+0+1, tako da se r-x i 4 samo čitaju, ili r--. Dozvole za text.txt bi bile

    rwxr-xr--
  4. Pretpostavimo da je datoteka pod nazivom test.sh shell skripta sa sljedećim dozvolama i vlasništvom:

    -rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh
    • Koje su dozvole za vlasnika datoeke?

      Dozvole za vlasnika (od 2. do 4. karaktera u izlazu ls -l) su rwx, tako da je odgovor: “da čita, piše i izvršava datoteku”.

    • Ako korisnik john pokrene ovu skriptu, pod kojim će se privilegijama korisnika ona pokrenuti?

      Obratite pažnju na dozvole za grupu. Oni su r-s, što znači da je SGID bit postavljen. Grupa koja posjeduje ovu datoteku je root, tako da će skripta, čak i kada je pokrenuta od strane običnog korisnika, biti pokrenuta s root privilegijama.

    • Koristeći numeričku notaciju, koja bi trebala biti sintaksa chmod za “poništavanje” posebne dozvole dodijeljene ovoj datoteci?

      Možemo "poništiti" specijalne dozvole tako što ćemo chmod proslijediti četvrtu znamenku, 0. Trenutne dozvole su 755, tako da bi komanda trebala biti chmod 0755.

  5. Razmotrite sljedeću datoteku:

    $ ls -l /dev/sdb1
    brw-rw---- 1 root disk 8, 17 Dec 21 18:51 /dev/sdb1

    Koje vrste je datoteka sdb1? I ko može pisati u nju?

    Prvi znak izlaza iz ls -l pokazuje vrstu datoteke. b je blok uređaj, obično disk (interni ili eksterni), povezan sa mašinom. Vlasnik (root) i svi korisnici grupe disk mogu pisati na njega.

  6. Razmotrite sljedeće 4 datoteke:

    drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory
    ----r--r-- 1 carol carol    0 Dec 11 10:55 foo.bar
    -rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
    drwxr-sr-x 2 carol users 4,0K Jan 18 17:26 Sample_Directory

    Zapišite odgovarajuće dozvole za svaku datoteku i direktorij koristeći numeričku 4-cifrenu notaciju.

    Odgovarajuće dozvole, u numeričkom zapisu, su sljedeće:

    Another_Directory

    Odgovor: 1755

    1 za ljepljivi bit, 755 za redovne dozvole (rwx za korisnika, r-x za grupu i ostale).

    foo.bar

    Odgovor: 0044

    Nema posebnih dozvola (tako da je prva cifra 0), nema dozvola za korisnika (---) i samo čitanje (r—​r--) za grupu i druge.

    HugeFile.zip

    Odgovor: 0664

    Nema posebnih dozvola, tako da je prva cifra 0. 6 (rw-) za korisnika i grupu, 4 (r--) za ostale.

    Sample_Directory

    Odgovor: 2755

    2 for the SGID bit, 7 (rwx) za korisnika, 5 (r-x) za grupu i ostale.

Odgovori na istraživačke vježbe

  1. Pokušajte ovo na terminalu: kreirajte praznu datoteku pod nazivom emptyfile sa komandom touch emptyfile. Sada “zero out” dozvole za datoteku sa chmod 000 emptyfile. Šta će se dogoditi ako promijenite dozvole za emptyfile tako što ćete proslijediti samo one vrijednost za chmod u numeričkom načinu, kao što je chmod 4 emptyfile? Šta ako koristimo dva, kao što je chmod 44 emptyfile? Šta možemo naučiti o načinu na koji chmod čita numeričku vrijednost?

    Remember that we “zeroed out” the permissions for emptyfile. So, its initial state would be:

    ---------- 1 carol carol    0 Dec 11 10:55 emptyfile

    Now, let’s try the first command, chmod 4 emptyfile:

    $ chmod 4 emptyfile
    $ ls -l emptyfile
    -------r-- 1 carol carol 0 Dec 11 10:55 emptyfile

    The permissions for others were changed. And what if we try two digits, such as chmod 44 emptyfile?

    $ chmod 44 emptyfile
    $ ls -l emptyfile
    ----r--r-- 1 carol carol 0 Dec 11 10:55 emptyfile

    Now, the permissions for group and others were affected. From this, we can conclude that in numeric notation chmod reads the value “backwards”, from the least significant digit (others) to the most significant one (user). If you pass one digit, you modify the permissions for others. With two digits you modify group and others, and with three you modify user, group and others and with four digits you modify user, group, others and the special permissions.

  2. Can you execute a file for which you have execute, but not read permissions (--x)? Why or why not?

    At first, the answer seems obvious: If you have execute permission, the file should run. This applies to programs in binary format that are executed directly by the kernel. However, there are programs (e.g. shell scripts) that must first be read and interpreted, so in these cases the read permission (r) must also be set.

  3. Consider the permissions for the temporary directory on a Linux system, /tmp:

    $ ls -l /tmp
    drwxrwxrwt  19 root root  16K Dec 21 18:58 tmp

    User, group and others have full permissions. But can a regular user delete any files inside this directory? Why is this?

    /tmp is what we call a world writeable directory, meaning that any user can write to it. But we don’t want one user modifying files created by others, so the sticky bit_ is set (as indicated by the t on the permissions for others). This means that a user can delete files in /tmp, but only if they created that file.

  4. Datoteka pod nazivom test.sh ima sljedeće dozvole: -rwsr-xr-x, što znači da je SUID bit postavljen. Sada pokrenite sljedeće komande:

    $ chmod u-x test.sh
    $ ls -l test.sh
    -rwSr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

    Šta smo uradili? Šta znači veliko slovo S?

    Uklonili smo dozvole za izvršavanje za korisnika koji posjeduje datoteku. s (ili t) zauzima mjesto x na izlazu ls -l, tako da je sistemu potreban način da pokaže da li korisnik ima dozvole za izvršavanje ili ne. To radi promjenom velikih i malih slova posebnog znaka.

    Malo slovo s na prvoj grupi dozvola znači da korisnik koji posjeduje datoteku ima dozvole za izvršavanje i da je postavljen SUID bit. Veliko slovo S znači da korisnik koji posjeduje datoteku nema (-) dozvole za izvršavanje i da je SUID bit postavljen.

    Isto se može reći i za SGID. Malo slovo s na drugoj grupi dozvola znači da grupa koja posjeduje datoteku ima dozvole za izvršavanje i da je SGID bit postavljen. Veliko slovo S znači da grupa koja posjeduje datoteku nema (-) dozvole za izvršavanje i da je SGID bit postavljen.

    Ovo važi i za lepljivi bit, predstavljen sa t u trećoj grupi dozvola. Malo slovo t znači da je ljepljivi bit postavljen i da drugi imaju dozvole za izvršavanje. Veliko slovo T znači da je ljepljivi bit postavljen i da drugi nemaju dozvole za izvršavanje.

  5. Kako biste kreirali direktorij pod nazivom Box gdje su sve datoteke automatski u vlasništvu grupe users, a može ih izbrisati samo korisnik koji ih je kreirao?

    Ovo je proces u više koraka. Prvi korak je kreiranje direktorija:

    $ mkdir Box

    Želimo da svaki fajl kreiran unutar ovog direktorijuma bude automatski dodijeljen grupi korisnici. To možemo učiniti postavljanjem ove grupe kao vlasnika direktorija, a zatim postavljanjem bita SGID na njoj. Također moramo osigurati da bilo koji član grupe može pisati u taj direktorij.

    Budući da nas ne zanima koje su druge dozvole, i želimo da “prevrnemo” samo posebne bitove, ima smisla koristiti simbolički način:

    $ chown :users Box/
    $ chmod g+wxs Box/

    Imajte na umu da ako vaš trenutni korisnik ne pripada grupi users, morat ćete koristiti komandu sudo prije gornjih komandi da izvršite promjenu kao root.

    Sada za posljednji dio, uvjerite se da je samo korisniku koji je kreirao fajl dozvoljeno da ga izbriše. Ovo se radi postavljanjem ljepljivog bita (predstavljenog t) na direktorij. Zapamtite da je postavljeno na dozvole za druge (o).

    $ chmod o+t Box/

    Dozvole za direktorij Box bi se trebale pojaviti na sljedeći način:

    drwxrwsr-t 2 carol users  4,0K Jan 18 19:09 Box

    Naravno, možete specificirati SGID i sticky bit koristeći samo jednu chmod komandu:

    $ chmod g+wxs,o+t Box/

    Bonus bodovi ako ste pomislili na to.

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Sljedeća lekcija

5.4 Specijalni direktoriji i podaci (5.4 Lekcija 1)

Pročitaj narednu lekciju

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

LPI je neprofitna organizacija.

© 2023 Linux Profesional Institut (LPI) je globalni certifikacijski standard, podrške za karijeru, te vodeća organizacija za open sors profesionalce. Sa više od 200.000 certificiranih ljudi, prvi je najveći, svjetski vendor za Linux i open sors certifikaciju. LPI trenutno ima certificirane profesionalce u 180 zemalja širom svijeta, dostavlja testove na više jezika, te ima oko stotine trening partnera.

Naša svrha je omogućiti ekonomske i kreativne prilike za svakog, čineći dostupnim certifikaciju u open sors znanju i vještinama svima.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktirajte nas
  • Privatnost i politika kolačića

Primijetili ste grešku ili želite pomoći poboljšati ovu stranicu? Molimo prijavite nam!.

© 1999–2023 The Linux Professional Institute Inc. Sva prava zadržana.