Ako ste neko vrijeme koristili Linux (čak i OS X), vjerojatno ćete naići na pogrešku "dopuštenja". Ali što točno jesu i zašto su potrebni ili korisni? Uzmimo unutarnji izgled.
Danas su računala bila masivni strojevi koji su bili nevjerojatno skupi. Da bi ih se najviše iskoristilo, spojeni su više računalnih terminala, što je omogućilo mnogim korisnicima da istodobno idu u svoje poslovanje. Obrada i pohrana podataka obavljena je na stroju, a sami terminali bili su tek nešto više od načina pregleda i unosa podataka. Ako razmišljate o tome, prilično je to kako pristupamo podacima o "oblaku"; pogledajte Amazonov Cloud MP3 sustav, Gmail i Dropbox te ćete primijetiti da, iako se promjene mogu napraviti lokalno, sve se pohranjuje na daljinu.
(Slika: Zenith Z-19 "glup" terminal, kredit: ajmexico)
Da bi to funkcioniralo, pojedini korisnici moraju imati račune. Trebaju imati dijelove skladišnog prostora koji im se dodjeljuju, a im treba dopustiti da izvode naredbe i programe. Svatko dobiva specifične "korisničke dozvole", koji diktiraju što mogu i ne mogu, gdje na sustavu rade i nemaju pristup, a čije se datoteke mogu i ne mogu mijenjati. Svaki korisnik je također smješten u različite skupine, koji daju ili ograničavaju daljnji pristup.
U ovom ćudljivom multi-user svijetu već smo postavili granice o tome što korisnici mogu učiniti. Ali što je s tim što im pristupaju? Pa, svaka datoteka ima skup dozvola i vlasnika. Oznaka vlasnika, obično vezana kada se datoteka stvara, izjavljuje kojem korisniku pripada, a samo taj korisnik može mijenjati svoje dozvole za pristup.
U svijetu Linuxa dozvole su podijeljene u tri kategorije: čitanje, pisanje i izvršavanje. "Read" pristup omogućuje pregledavanje sadržaja datoteke, "pisanje" omogućuje pristup uređivanju sadržaja neke datoteke, a "izvršavanje" omogućuje pokretanje skupova instrukcija, poput skripte ili programa. Svaka od ovih kategorija primjenjuje se na različite klase: korisnik, grupu i svijet. "Korisnik" znači vlasnika, "skupina" znači bilo koji korisnik koji je u istoj grupi kao i vlasnik, a "svijet" znači bilo koga i svima.
Mape se također mogu ograničiti s tim dozvolama. Na primjer, možete dopustiti drugim osobama u vašoj grupi da gledaju direktorije i datoteke u vašoj početnoj mapi, ali ne i one izvan vaše grupe. Vjerojatno biste htjeli ograničiti "pisati" pristup samo za sebe, osim ako ne radite na nekom zajedničkom projektu. Možete stvoriti i zajednički direktorij koji omogućuje pregledavanje i izmjenu datoteka u toj mapi.
GUI
Da biste promijenili dopuštenje datoteke koju posjedujete u Ubuntu, samo desnom tipkom miša kliknite datoteku i otvorite "Svojstva".
Možete promijeniti možete li vlasnik, grupa ili ostali čitati i pisati, samo čitati ili ništa učiniti. Također možete provjeriti okvir kako biste omogućili izvršenje datoteke, a to će je omogućiti istovremeno za vlasnika, grupu i druge.
Command-Line
To možete učiniti i putem naredbenog retka. Idite na direktorij s datotekama u njemu i upišite sljedeću naredbu da biste vidjeli sve datoteke na popisu:
ls-al
Pored svake datoteke i direktorija vidjet ćete poseban odjeljak koji opisuje dozvole koje ima. Izgleda ovako:
-rwxrw-r
r znači "čitati", w označava "pisanje" i x označava "izvršavanje". Imenice će započeti s "d" umjesto "-". Također ćete primijetiti da ima 10 mjesta koja imaju vrijednost. Možete zanemariti prvu, a zatim postoje 3 seta od 3. Prvi set je za vlasnika, drugi je skup za grupu, a zadnji skup je za svijet.
Da biste promijenili dopuštenje datoteke ili direktorija, pogledajmo osnovni oblik naredbe chmod.
chmod [class] [operater] [dopuštenje] datoteku
chmod [ugoa] [+ ili -] [rwx] datoteku
Prvo može izgledati komplicirano, ali vjerujte mi, to je prilično jednostavno. Prvo, pogledajmo klase:
Zatim, operatori:
Još uvijek sa mnom? I zadnji odjeljak je isti kao kad smo provjerili dopuštenja datoteke:
Sad, spojimo je. Pretpostavimo da imamo datoteku pod nazivom "todo.txt" koja ima sljedeća dopuštenja:
-rw-RW-r
To jest, vlasnik i grupa mogu čitati i pisati, a svijet samo može čitati. Želimo promijeniti dozvole na ove:
-rwxr-
To znači da vlasnik ima punu dozvolu, a grupa može pročitati. To možemo učiniti u 3 koraka. Prvo ćemo dodati dopuštenje za izvršenje za korisnika.
chmod u + x todo.txt
Zatim ćemo ukloniti dozvolu za pisanje za grupu.
chmod g-w todo.txt
Na kraju, uklonit ćemo dozvole za čitanje za sve ostale korisnike.
chmod o-r todo.txt
Također ih možemo kombinirati u jednu naredbu, kao što je to:
chmod u + x, g-w, o-r todo.txt
Možete vidjeti da je svaki odjeljak odvojen zarezima i da nema razmaka.
Evo nekoliko korisnih dopuštenja:
Postoji nekoliko drugih stvari koje možete učiniti s chmod-like setuid i setgid - ali oni su malo in-dubina i većina korisnika zapravo ne treba ih koristiti ionako.
Danas ne uvijek pokrećemo sustave koji imaju više korisnika. Zašto bismo još uvijek trebali brinuti o dozvolama?
Pa, Unix i njegovi derivati - Linux, OS X, među ostalima - razlikuju i stvari koje vodi korisnik, stvari koje pokreće administrator ili s administratorskim pravima i stvari koje pokreće sam sustav. Kao takve, stvari koje su integralne za sustav trebaju administratorske ovlasti za promjenu ili pristup. Na taj način, ne smetati ništa slučajno.
U sustavu Ubuntu, da biste izvršili promjene u datotekama sustava koje koristite, učinite to ili kako biste dobili ekvivalentne privilegije administratora. U drugim distributerima se prebacite na "Čarobnjak" ili "Čarobnjak" koji učinkovito radi istu stvar sve dok se ne odjavite.
Imajte na umu da u oba slučaja promjena dozvola za datoteke može dovesti do programa koji ne funkcioniraju, nenamjerno mijenjaju vlasništvo nad datotekama korisnika korijena (umjesto vlasnika), a sustav je manje siguran (dodjeljujući više ovlasti). Kao takav, preporučujemo da ne mijenjate dozvole za datoteke - osobito datoteke sustava - osim ako nije potrebno ili znate što radite.
Dozvole za datoteke su na mjestu kako bi pružili osnovni sustav sigurnosti među korisnicima. Učenje kako rade može vam pomoći da postavite osnovno dijeljenje u okruženju s više korisnika, zaštitite ih, javno objavite i dajte vam trag kada se nešto ne dogodi s vlasništvom nad datotekama sustava.
Mislite da možete olakšati objašnjenje? Je li ispravak? Želite li se prisjetiti starih dana? Odmorite se i stavite svoje misli u komentare.