U Linuxu dozvole, atributi i vlasništvo nad datotekama kontroliraju razinu pristupa koju sustav obrađuje i korisnici moraju imati datoteke. To osigurava da samo ovlašteni korisnici i procesi mogu pristupiti određenim datotekama i direktorijima.
Dozvole Linux datoteke #
Osnovni model dozvola za Linux funkcionira povezivanjem svake sistemske datoteke s vlasnikom i grupom i dodjeljivanjem prava pristupa dozvolama za tri različite klase korisnika:
- Vlasnik datoteke.
- Članovi grupe.
- Ostali (svi ostali).
Vlasništvo datoteke može se promijeniti pomoću chown
i chgrp
naredbe.
Tri vrste dozvola datoteka primjenjuju se na svaku klasu korisnika:
- Odobrenje za čitanje.
- Dopuštenje za pisanje.
- Odobrenje za izvršenje.
Ovaj koncept omogućuje vam kontrolu nad korisnicima koji mogu čitati datoteku, pisati u datoteku ili izvršavati datoteku.
Da biste pogledali dozvole za datoteku, upotrijebite ls
naredba:
ls -l ime_datoteke
-rw-r - r-- 12 linuxize korisnika 12.0K 28. travnja 10:10 ime_datoteke | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Grupa | | | | | + -------------------> 6. Vlasnik | | | | + --------------------------> 5. Alternativni način pristupa | | | + ----------------------------> 4. Ostala dopuštenja | | + -------------------------------> 3. Dopuštenja grupe | + ----------------------------------> 2. Vlasnička dozvola + ------------------------------------> 1. Vrsta datoteke
Prvi znak označava vrstu datoteke. To može biti uobičajena datoteka (-
), direktorij (d
), simbolička poveznica (l
) ili druge posebne vrste datoteka. Sljedećih devet znakova predstavljaju dozvole datoteke, tri trojke po tri znaka. Prva trojka prikazuje dozvole vlasnika, druga dopuštenja za jednu grupu, a zadnja trojka prikazuje dozvole svih ostalih.
U gornjem primjeru (rw-r - r--
) znači da je vlasnik datoteke imao dozvolu za čitanje i pisanje (rw-
), grupa i drugi imaju samo dopuštenja za čitanje (r--
).
Dozvole za datoteke imaju različito značenje, ovisno o vrsti datoteke.
Svaka od tri trojke dozvola može se sastojati od sljedećih znakova i imati različite učinke, ovisno o tome jesu li postavljene u datoteku ili u direktorij:
Učinak dozvola na datoteke
Dopuštenje | Lik | Značenje u datoteci |
---|---|---|
Čitati | - | Datoteka se ne može pročitati. Ne možete pregledati sadržaj datoteke. |
r | Datoteka je čitljiva. | |
Pisati | - | Datoteka se ne može mijenjati ili mijenjati. |
w | Datoteka se može mijenjati ili mijenjati. | |
Izvršiti | - | Datoteka se ne može izvršiti. |
x | Datoteka se može izvršiti. | |
s | Ako se pronađe u korisnik triplet, postavlja setuid malo. Ako se pronađe u skupina triplet, postavlja setgid malo. To također znači da x postavljena je zastava.Kada setuid ili setgid zastavice se postavljaju na izvršnu datoteku, datoteka se izvršava s vlasnikom datoteke i / ili privilegijama grupe. | |
S | Isto kao s , ali x zastava nije postavljena. Ova se zastava rijetko koristi na datotekama. | |
t | Ako se pronađe u drugi triplet, postavlja ljepljiv malo.To također znači da x postavljena je zastava. Ova je zastavica beskorisna na datotekama. | |
T | Isto kao, t ali x zastava nije postavljena. Ova je zastavica beskorisna na datotekama. |
Učinak dozvola na direktorije (mape)
Direktoriji su posebne vrste datoteka koje mogu sadržavati druge datoteke i direktorije.
Dopuštenje | Lik | Značenje na direktoriju |
---|---|---|
Čitati | - | Sadržaj direktorija ne može se prikazati. |
r | Sadržaj direktorija može se prikazati. (npr.g., Datoteke u direktoriju možete navesti pomoću ls .) | |
Pisati | - | Sadržaj direktorija ne može se mijenjati. |
w | Sadržaj direktorija može se mijenjati. (npr.g., Možete stvarati nove datoteke, brisati datoteke ... itd.) | |
Izvršiti | - | Direktorij se ne može promijeniti u. |
x | Direktorij se može kretati pomoću CD . | |
s | Ako se pronađe u korisnik triplet, postavlja setuid malo. Ako se pronađe u skupina triplet postavlja setgid malo. To također znači da x postavljena je zastava. Kada setgid zastava postavljena je na direktorij, nove datoteke stvorene u njemu nasljeđuju ID grupe direktorija (GID) umjesto primarne ID grupe korisnika koji je stvorio datoteku.setuid nema utjecaja na imenike. | |
S | Isto kao s , ali x zastava nije postavljena. Ova je zastava beskorisna na direktorijima. | |
t | Ako se pronađe u drugi triplet, postavlja ljepljiv malo.To također znači da x postavljena je zastava. Kada je ljepljivi bit postavljen na direktorij, samo vlasnik datoteke, vlasnik direktorija ili administrativni korisnik može izbrisati ili preimenovati datoteke u direktoriju. | |
T | Isto kao t , ali x zastava nije postavljena. Ova je zastava beskorisna na direktorijima. |
Promjena dozvola datoteke #
Dopuštenja za datoteku mogu se mijenjati pomoću chmod
naredba. Samo root, vlasnik datoteke ili korisnik sa sudo privilegijama može promijeniti dozvole datoteke. Budite posebno oprezni pri korištenju chmod
, posebno kod rekurzivne promjene dozvola. Naredba može prihvatiti jednu ili više datoteka i / ili direktorija odvojenih razmakom kao argumente.
Dopuštenja se mogu odrediti pomoću simboličkog načina rada, numeričkog načina rada ili referentne datoteke.
Simbolička (tekst) metoda #
Sintaksa chmod
naredba kada koristi simbolički način ima sljedeći format:
chmod [OPCIJE] [ugoa…] [- + =] perms ... [, ...] FILE…
Prvi set zastava ([ugoa…]
), user flags, definira klase korisnika za koje se mijenjaju dozvole za datoteku.
u
- Vlasnik datoteke.g
- Korisnici koji su članovi grupe.o
- Svi ostali korisnici.a
- Svi korisnici, identičniugo
.
Kada je izostavljena korisnička oznaka, zadana je vrijednost a
.
Drugi set zastava ([- + =]
), operacijske zastavice, definira hoće li se dopuštenja ukloniti, dodati ili postaviti:
-
- Uklanja navedena dopuštenja.+
- Dodaje navedena dopuštenja.=
- Mijenja trenutna dopuštenja u navedena dopuštenja. Ako se nakon=
simbol uklanjaju se sva dopuštenja iz navedene korisničke klase.
Dopuštenja (trajne ..
) izričito se postavljaju nulom ili jednim ili više sljedećih slova: r
, w
, x
, x
, s
, i t
. Upotrijebite jedno slovo iz seta u
, g
, i o
prilikom kopiranja dozvola iz jednog u drugi razred korisnika.
Pri postavljanju dozvola za više korisničkih klasa ([, ...]
), koristite zareze (bez razmaka) za odvajanje simboličkih načina.
Evo nekoliko primjera kako koristiti chmod
naredba u simboličkom načinu:
Dajte članovima grupe dopuštenje za izvršavanje datoteke, ali ne i za čitanje i pisanje u nju:
chmod g = x naziv datoteke
Uklonite dozvolu za pisanje za sve korisnike:
chmod a-w naziv datoteke
Odvratno uklonite odobrenje za izvršavanje za druge korisnike:
chmod -R o-x dirname
Uklonite dozvolu za čitanje, pisanje i izvršavanje za sve korisnike, osim za vlasnika datoteke:
chmod og-rwx naziv datoteke
Ista stvar se također može postići pomoću sljedećeg obrasca:
chmod og = naziv datoteke
Dajte dozvolu za čitanje, pisanje i izvršavanje vlasniku datoteke, dopuštenja za čitanje grupi datoteka i nema dopuštenja za sve ostale korisnike:
chmod u = rwx, g = r, o = naziv datoteke
Numerička metoda #
Sintaksa chmod
naredba kada koristi simbolički način ima sljedeći format:
chmod [OPCIJE] BROJ DATOTEKE ..
Kada upotrebljavate numerički način, možete istovremeno postaviti dozvole za sve tri korisničke klase (vlasnik, grupa i sve ostale).
Broj dozvole može biti 3 ili 4 znamenkasti broj. Kada se koristi 3-znamenkasti broj, prva znamenka predstavlja dozvole vlasnika datoteke, druga grupa datoteke, a zadnja svih ostalih korisnika.
Svaka dopuštenja za pisanje, čitanje i izvršavanje imaju sljedeću brojčanu vrijednost:
r
(čitaj) = 4w
(pisati) = 2x
(izvršiti) = 1- nema dozvola = 0
Broj dozvola određene korisničke klase predstavljen je zbrojem vrijednosti dozvola za tu grupu.
Da biste saznali dozvole datoteke u numeričkom načinu, jednostavno izračunajte ukupne iznose za sve klase korisnika. Na primjer, da biste vlasniku datoteke dali dozvolu za čitanje, pisanje i izvršavanje, dopuštanje čitanja i izvršavanja grupi datoteka i dopuštenja za čitanje samo svim ostalim korisnicima, učinili biste sljedeće:
- Vlasnik: rwx = 4 + 2 + 1 = 7
- Skupina: r-x = 4 + 0 + 1 = 5
- Ostalo: r-x = 4 + 0 + 0 = 4
Koristeći gornju metodu, došli smo do broja 754
, što predstavlja željena dopuštenja.
Za postavljanje setuid
, setgid
, i ljepljivo malo
zastave, koristite četveroznamenkasti broj.
Kada se koristi 4-znamenkasti broj, prva znamenka ima sljedeće značenje:
- setuid = 4
- setgid = 2
- ljepljiv = 1
- bez promjena = 0
Sljedeće tri znamenke imaju isto značenje kao kada se koriste 3-znamenkasti broj.
Ako je prva znamenka 0, to se može izostaviti, a način rada može se predstaviti s 3 znamenke. Numerički način 0755
je isto što i 755
.
Da biste izračunali numerički način rada, možete upotrijebiti i drugu metodu (binarna metoda), ali je malo složenija. Znanje kako izračunati numerički način rada pomoću 4, 2 i 1 dovoljno je za većinu korisnika.
Dozvole datoteke možete provjeriti u numeričkom zapisu pomoću stat
naredba:
stat -c "% a" ime_datoteke
Evo nekoliko primjera kako koristiti chmod
naredba u numeričkom načinu:
Dajte vlasniku datoteke dozvole za čitanje i pisanje i dopuštenja za čitanje samo članovima grupe i svim ostalim korisnicima:
chmod 644 naziv
Dajte vlasniku datoteke dopuštenja za čitanje, pisanje i izvršavanje, dopuštenja za čitanje i izvršavanje članovima grupe, a ne svim ostalim korisnicima:
chmod 750 dirname
Dajte dozvole za čitanje, pisanje i izvršavanje i ljepljivi bit danoj mapi:
chmod 1777 dirname
Rekurzivno postavite dozvole za čitanje, pisanje i izvršavanje vlasniku datoteke i bez dozvola za sve ostale korisnike u danom direktoriju:
chmod -R 700 naziv
Zaključak #
U Linuxu je pristup datotekama ograničen pomoću dozvola, atributa i vlasništva nad datotekama. Da biste promijenili dozvole datoteke, koristite chmod
naredba.
Ako imate pitanja ili povratne informacije, slobodno ostavite komentar.