Početna » kako da » Kako funkcioniraju dozvole za Linux datoteke?

    Kako funkcioniraju dozvole za Linux datoteke?

    Ako već neko vrijeme koristite Linux (pa čak i OS X) vjerojatno ćete naići na pogrešku "dozvole". Ali što su oni zapravo i zašto su oni potrebni ili korisni? Pogledajmo iznutra.

    Korisničke dozvole

    Povremeno su računala bila masivni strojevi koji su bili nevjerojatno skupi. Da bi se iz njih izvukao maksimum, priključeno je više računalnih terminala koji su mnogim korisnicima omogućili da istovremeno rade na svom poslu. Obrada podataka i pohrana podataka obavljeni su na stroju, dok su sami terminali bili tek nešto više od sredstva za pregled i unos podataka. Ako razmislite o tome, prilično je važno kako pristupamo podacima na "oblaku"; pogledajte Amazonov Cloud MP3 sustav, Gmail i Dropbox, a primijetit ćete da, iako se promjene mogu napraviti lokalno, sve se pohranjuje na daljinu.

    (Slika: Zenith Z-19 "glupi" terminal; kredit: ajmexico)

    Kako bi ovo funkcioniralo, pojedinačni korisnici moraju imati račune. Oni moraju imati dio prostora za pohranu koji im je dodijeljen, a njima treba dopustiti pokretanje naredbi i programa. Svatko dobiva specifične "korisničke dozvole", koje diktiraju što mogu i što ne mogu, gdje u sustavu rade i nemaju pristup, i čije datoteke mogu i ne mogu mijenjati. Svaki korisnik se također smješta u različite grupe koje odobravaju ili ograničavaju daljnji pristup.

    Pristup datoteci

    U ovom otkačenom višekorisničkom svijetu već smo postavili granice što korisnici mogu učiniti. Ali što s onim što imaju pristup? Svaka datoteka ima skup dopuštenja i vlasnika. Oznaka vlasnika, obično vezana kada je datoteka kreirana, objavljuje kojem korisniku pripada, a samo taj korisnik može promijeniti svoje dozvole pristupa.

    U svijetu Linuxa dozvole su podijeljene u tri kategorije: čitanje, pisanje i izvršavanje. Pristup "Čitanje" omogućuje pregled sadržaja datoteke, pristup "pisanje" omogućuje izmjenu sadržaja datoteke, a "izvršavanje" omogućuje pokretanje niza uputa, poput skripte ili programa. Svaka od ovih kategorija primjenjuje se na različite klase: korisnik, grupa i svijet. "Korisnik" znači vlasnik, "grupa" znači bilo kojeg korisnika koji je u istoj grupi kao i vlasnik, a "svijet" znači bilo koga i sve.

    Mape mogu biti ograničene tim dozvolama. Možete, primjerice, dopustiti drugim osobama u vašoj grupi pregledavanje direktorija i datoteka u vašoj matičnoj mapi, ali ne i osobama izvan vaše grupe. Vjerojatno ćete htjeti ograničiti pristup pisanju samo na sebe, osim ako ne radite na nekom zajedničkom projektu. Također možete stvoriti zajednički direktorij koji omogućuje svakome da pregledava i mijenja datoteke u toj mapi.

    Promjena dozvola u Ubuntuu

    GUI

    Da biste promijenili dozvole datoteke koju posjedujete u Ubuntuu, samo kliknite datoteku desnom tipkom i idite na "Svojstva".

    Možete mijenjati može li Vlasnik, Grupa ili Drugi čitati i pisati, samo čitati ili ne činiti ništa. Također možete označiti okvir kako biste omogućili izvođenje datoteke, a to će omogućiti istovremeno vlasnika, grupu i druge.

    Command-Line

    To možete učiniti i putem naredbenog retka. Idite u direktorij s datotekama u njemu i upišite sljedeću naredbu da biste pregledali sve datoteke na popisu:

    ls-al

    Pored svake datoteke i direktorija vidjet ćete poseban odjeljak koji opisuje dopuštenja koja ima. Izgleda ovako:

    -rwxrw-r-

    r znači "pročitati" w znači "piši" i x Oznaka "izvršiti". Katalozi će se početi s "d" umjesto "-". Također ćete primijetiti da ima 10 mjesta koja drže vrijednost. Prvi možete zanemariti, a zatim postoje 3 seta od 3. Prvi skup je za vlasnika, drugi je za grupu, a zadnji je za svijet.

    Da biste promijenili dozvole datoteke ili direktorija, pogledajmo osnovni oblik chmod naredbe.

    chmod [class] [operator] [dozvola] datoteka

    chmod [ugoa] [+ ili -] [rwx] datoteka

    U početku se to može činiti komplicirano, ali vjerujte mi, prilično je lako. Prvo, pogledajmo klase:

    • u: Ovo je za vlasnika.
    • g: Ovo je za skupinu.
    • o: Ovo je za sve ostale.
    • a: To će promijeniti dozvole za sve gore navedeno.

    Dalje, operatori:

    • +: Znak plus će dodati dopuštenja koja slijede.
    • -: Znak minus uklonit će dopuštenja koja slijede.

    Još si sa mnom? I posljednji odjeljak je isti kao kad smo provjerili dozvole datoteke:

    • r: Omogućuje pristup čitanju.
    • w: Omogućuje pristup pisanju.
    • x: Omogućuje izvršavanje.

    Stavimo to zajedno. Recimo da imamo datoteku pod nazivom "todo.txt" koja ima sljedeće dozvole:

    -rw-rw-r-

    To jest, vlasnik i grupa mogu čitati i pisati, a svijet može samo čitati. Želimo promijeniti dozvole za ove:

    -rwxr-

    To jest, vlasnik ima potpune dozvole, a grupa može čitati. To možemo učiniti u 3 koraka. Prvo ćemo korisniku dodati dopuštenje za izvršenje.

    chmod u + x todo.txt

    Zatim ćemo ukloniti dopuštenje za pisanje za grupu.

    chmod g-w todo.txt

    Konačno, uklonit ćemo dozvole za čitanje za sve ostale korisnike.

    chmod o-r todo.txt

    Možemo ih kombinirati u jednu naredbu, kao na primjer:

    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 dozvola:

    • -rwxr-xr-x: Vlasnik ima potpune dozvole, grupe i drugi korisnici mogu čitati sadržaj datoteke i izvršavati.
    • -rwxr-r-: Vlasnik ima potpune dozvole, grupa i drugi korisnici mogu samo čitati datoteku (korisno ako vam ne smeta što drugi pregledavaju vaše datoteke.
    • -rwx-: Vlasnik ima potpune dozvole, sve ostale nemaju (korisno za osobne skripte).
    • -rw-rw--: Vlasnik i grupa mogu čitati i pisati (korisno za suradnju s članovima grupe).
    • -rw-r-r-: Vlasnik može čitati i pisati, grupirati i drugi korisnici mogu samo čitati datoteke (korisno za pohranjivanje osobnih datoteka na dijeljenoj mreži).
    • -rw--: Vlasnik može čitati i pisati, svi ostali nemaju (korisno za pohranu osobnih datoteka).

    Postoji još nekoliko stvari koje možete učiniti s chmodom - kao što je setuid i setgid - ali oni su malo dublji i većina korisnika ih ionako neće morati upotrebljavati..

    Datoteke Root ili Super-User i System

    Danas ne izvodimo uvijek sustave s više korisnika. Zašto bismo i dalje trebali brinuti o dozvolama?

    Pa, Unix i njegovi derivati ​​- Linux, OS X, među ostalima - također razlikuju stvari koje pokreće korisnik, stvari koje vodi administrator ili s administratorskim ovlastima, i stvari koje vodi sam sustav. Kao takve, stvari koje su sastavni dio sustava zahtijevaju promjenu ili pristup administratorskim povlasticama. Na taj način nećete slučajno zabrljati.

    U Ubuntuu, da biste napravili promjene u sistemskim datotekama, koristite “sudo” ili “gksudo” da biste dobili ekvivalent administratorskih povlastica. U drugim distrosima, prebacite se na "root" ili "super-korisnik", što zapravo čini istu stvar dok se ne odjavite.

    Budite svjesni da u obje ove okolnosti mijenjanje dozvola za datoteke može dovesti do toga da programi ne rade, nenamjerno mijenjaju vlasništvo nad datotekom na korijenskog korisnika (umjesto vlasnika) i čine sustav manje sigurnim (dodjelom više dozvola). Kao takvo, preporučuje se da ne mijenjate dozvole za datoteke - osobito sistemske datoteke - osim ako je to potrebno ili znate što radite.


    Dozvole datoteka postoje kako bi pružile osnovni sustav sigurnosti među korisnicima. Učenje kako oni funkcioniraju mogu vam pomoći u postavljanju osnovnog dijeljenja u okruženju s više korisnika, zaštititi "javne" datoteke i dati vam trag kada nešto pođe po zlu s vlasništvom datoteke sustava.

    Mislite da možete lakše objasniti stvari? Imate li ispravak? Želite li se prisjetiti starih dana? Odmorite se i stavite svoje misli u komentare.