Dozvole za datoteke u Linuxu / Unixu: Kako čitati, pisati i mijenjati

⚡ Pametni sažetak

Dozvole za datoteke u Linuxu i Unixu kontroliraju tko može čitati, pisati i izvršavati svaku datoteku, štiteći višekorisnički sustav kroz dva sloja: vlasništvo, koje dodjeljuje korisnika, grupu i druge, te bitove dozvola za čitanje, pisanje i izvršavanje.

  • 👥 Vlasništvo: Svaka datoteka i direktorij pripada korisniku (vlasniku), grupi i drugima, ponekad nazvanim svijetom.
  • 🔑 dozvole: Za svaku vlasničku klasu primjenjuju se tri dozvole: čitanje (r), pisanje (w) i izvršavanje (x).
  • 📃 oglas: Naredba ls -l prikazuje niz dozvola kao što je -rw-rw-r– za vlasnika, grupu i svijet.
  • 🔢 Apsolutni način rada: chmod s troznamenkastim oktalnim brojem postavlja dozvole za sve tri klase odjednom, na primjer 764.
  • Simbolički način: chmod s u, g, o, a i +, -, = mijenja jednu vlasničku klasu bez diranja ostalih.
  • 🧭 Naredbe vlasništva: Naredba chown mijenja vlasnika i grupu, dok naredba chgrp mijenja samo grupu.
  • 🤖 Pomoć umjetne inteligencije: AI asistenti i GitHub Copilot mogu generirati i objašnjavati naredbe chmod i chown.

Dozvole za datoteke u Linuxu i Unixu: kako čitati, pisati i mijenjati

Dozvole za datoteke u Linux i Unix odlučuju tko smije čitati, mijenjati ili pokretati svaku datoteku, što osigurava sigurnost dijeljenog sustava s više korisnika. Ova stranica vodi kroz vlasništvo nad datotekama, dozvole za čitanje, pisanje i izvršavanje te naredbe koje ih mijenjaju.

Linux je klon Unixa, višekorisničkog operativnog sustava kojem istovremeno mogu pristupiti mnogi korisnici. Linux se također može koristiti na glavnim računalima i poslužiteljima bez ikakvih modifikacija. No to stvara sigurnosne probleme, jer neželjeni ili zlonamjerni korisnik može oštetiti, promijeniti ili ukloniti ključne podatke. Za učinkovitu sigurnost, Linux dijeli autorizaciju na dvije razine:

  • Svojina
  • Dopuštenje

Koncept dozvola za datoteke i vlasništva ključan je u Linuxu. Ovdje objašnjavamo dozvole i vlasništvo nad datotekama u Linuxu i raspravljamo o oboje. Počnimo s vlasništvom.

Vlasništvo Linux datoteke

Svakoj datoteci i direktoriju na vašem Unix/Linux sustavu dodijeljene su tri vrste vlasnika, navedene u nastavku. Dijagram u nastavku prikazuje kako se vlasništvo preslikava na korisnika, grupu i ostale.

Dijagram vlasništva datoteka u Linuxu koji prikazuje korisnika, grupu i ostale klase dozvola

korisnik

Korisnik je vlasnik datoteke. Prema zadanim postavkama, osoba koja je stvorila datoteku postaje njezin vlasnik. Stoga se korisnik ponekad naziva i vlasnik.

Klan

A korisnička grupa može sadržavati više korisnika. Svi korisnici koji pripadaju grupi imaju iste Linux grupne dozvole za datoteku. Pretpostavimo da imate projekt u kojem više ljudi treba pristup datoteci. Umjesto ručnog dodjeljivanja dozvola svakom korisniku, možete dodati sve korisnike u grupu i dodijeliti grupnu dozvolu za datoteku, tako da samo ti članovi grupe, i nitko drugi, mogu čitati ili mijenjati datoteke.

Ostalo

Bilo koji drugi korisnik koji ima pristup datoteci. Ta osoba nije ni stvorila datoteku niti pripada korisničkoj grupi koja bi mogla biti vlasnik datoteke. Praktično, to znači svi ostali. Stoga, kada postavljate dopuštenje za druge, to se naziva i postavljanjem dopuštenja za cijeli svijet.

Sada se postavlja veliko pitanje: kako Linux razlikuje ove tri vrste korisnika tako da korisnik 'A' ne može utjecati na datoteku koja sadrži vitalne informacije ili podatke nekog drugog korisnika 'B'? To je kao da ne želite kolegu koji radi na vašem... Linux računalo za pregled slika. Tu dolaze do izražaja dopuštenja koja definiraju ponašanje korisnika.

Razumijemo sustav dozvola na Linuxu.

Dopuštenja za datoteke za Linux

Svaka datoteka i direktorij u vašem Unix/Linux sustavu ima sljedeće tri dozvole definirane za sva tri gore navedena vlasnika.

  • Pročitajte: Ovo dopuštenje vam daje ovlaštenje za otvaranje i čitanje datoteke. Dozvola za čitanje direktorija daje vam mogućnost popisivanja njegovog sadržaja.
  • Pisati: Dozvola za pisanje daje vam ovlaštenje za izmjenu sadržaja datoteke. Dozvola za pisanje u direktoriju daje vam ovlaštenje za dodavanje, uklanjanje i preimenovanje datoteka pohranjenih u direktoriju. Razmotrite scenarij u kojem imate dozvolu za pisanje u datoteci, ali nemate dozvolu za pisanje u direktoriju u kojem je datoteka pohranjena. Moći ćete mijenjati sadržaj datoteke, ali nećete moći preimenovati, premjestiti ili ukloniti datoteku iz direktorija.
  • Izvršiti: In WindowsIzvršni program obično ima ekstenziju ".exe" koju možete lako pokrenuti. U Unixu/Linuxu ne možete pokrenuti program ako nije postavljeno dopuštenje za izvršavanje. Ako dopuštenje za izvršavanje nije postavljeno, možda ćete i dalje moći vidjeti ili mijenjati programski kod (pod uvjetom da su postavljena dopuštenja za čitanje i pisanje), ali ga nećete moći pokrenuti.

Pogledajmo dozvole za datoteke u Linuxu s primjerima. Pokretanjem naredbe ls -l u terminalu dobivamo:

ls -l

Snimka zaslona u nastavku prikazuje niz dozvola u dugom popisu.

Izlaz terminala ls -l koji prikazuje niz dozvola rw-rw-r-- za datoteku

Ovdje smo istaknuli '-rw-rw-r–', a ovaj neobično izgledajući kod nam govori o Unix dozvolama danim vlasniku, korisničkoj grupi i svijetu.

Ovdje prvi '-' označava da smo odabrali datoteku. Ikona ispod označava običnu datoteku.

Mala ikona koja označava da je navedena stavka obična datoteka

Inače, da se radi o direktoriju, prikazao bi se znak 'd', kao u donjem popisu.

Popis terminala koji prikazuje direktorij označen početnim slovom d u nizu dozvola

Likove je prilično lako zapamtiti.

  • r = dopuštenje za čitanje
  • w = dopuštenje za pisanje
  • x = dopuštenje za izvršavanje
  • – = nema dopuštenja

Pogledajmo to ovako. Prvi dio koda je 'rw-'. To sugerira da vlasnik 'Home' može:

  • Pročitajte datoteku
  • Napišite ili uredite datoteku

Vlasnik ne može izvršiti datoteku jer je bit izvršenja postavljen na '-'. Ikona ispod prikazuje da je bit izvršenja obrisan i postavljen na crticu.

Mala ikona koja prikazuje bit dopuštenja za izvršavanje obrisan u crticu

Po dizajnu, mnoge Linux distribucije poput Fedore, CentOS-a i Ubuntu dodajte korisnika u grupu s istim imenom kao i korisnik. Dakle, korisnik 'tom' dodaje se u grupu pod nazivom 'tom'.

Drugi dio je 'rw-'. Namijenjen je korisničkoj grupi 'Početna', a članovi grupe mogu:

  • Pročitajte datoteku
  • Napišite ili uredite datoteku

Treći dio je za svijet, što znači bilo koji korisnik. Piše 'r–'. To znači da korisnik može samo:

  • Pročitajte datoteku

Donja raščlamba prikazuje svaki dio niza dozvola za vlasnika, grupu i svijet.

Rastavljanje stringa dozvola rw-rw-r-- na dijelove vlasnika, grupe i svijeta

Promjena dozvola za datoteke/direktorije u Linuxu pomoću naredbe 'chmod'

Recimo da ne želite da kolega vidi vaše osobne slike. To se može postići promjenom dozvola za datoteke.

Možemo koristiti 'chmod' naredba, što je kratica za 'promjena načina rada'. Pomoću naredbe možemo postaviti dozvole (čitanje, pisanje, izvršavanje) za datoteku ili direktorij za vlasnika, grupu i svijet.

Sintaksa:

chmod permissions filename

Postoje dva načina korištenja naredbe:

  • Apsolutni način rada
  • Simbolički način

Apsolutni (numerički) način rada u Linuxu

U ovom načinu rada, dozvole za datoteke nisu predstavljene kao znakovi, već kao troznamenkasti oktalni broj. Tablica u nastavku prikazuje brojeve za sve vrste dozvola.

Broj Vrsta dopuštenja Simbol
0 Bez dozvole -
1 Izvršiti -X
2 Pisati -w-
3 Izvrši + Zapiši -wx
4 Čitaj r-
5 Čitaj + Izvrši rx
6 Čitanje + pisanje rw -
7 Čitanje + Pisanje + Izvršavanje rwx

Pogledajmo naredbu chmod u akciji, kao što je prikazano u prozoru terminala ispod.

Terminal pokreće chmod 764 na primjeru datoteke kako bi promijenio njezine dozvole

U gornjem prozoru terminala promijenili smo dozvole datoteke 'sample' na '764'. Apsolutni kod '764' kaže sljedeće:

  • Vlasnik može čitati, pisati i izvršavati.
  • Korisnička grupa može čitati i pisati.
  • Svijet može samo čitati.

To se prikazuje kao '-rwxrw-r–', kao u rezultatu ispod.

Ispis terminala koji prikazuje primjer datoteke s nizom dozvola -rwxrw-r-- nakon chmod 764

Ovako možete promijeniti korisnička dopuštenja u Linuxu na datoteci dodjeljivanjem apsolutnog broja.

Simbolički način rada u Linuxu

U apsolutnom načinu rada mijenjate dozvole za sva tri vlasnika. U simboličkom načinu rada možete mijenjati dozvole određenog vlasnika. Koristi matematičke simbole za izmjenu dozvola Unix datoteka.

Operahumka Description
+ Dodaje dopuštenje datoteci ili direktoriju
- Uklanja dopuštenje
= Postavlja dopuštenje i poništava prethodno postavljena dopuštenja

Različiti vlasnici su predstavljeni kako slijedi.

korisnik Oznake
u korisnik/vlasnik
g skupina
o drugo
a svi

Nećemo koristiti dozvole u brojevima poput 755 već znakove poput rwx. Pogledajmo primjer prikazan u nastavku.

Terminal koristi simbolički chmod s u, g, o i +, -, = za promjenu određenih dozvola

Promjena vlasništva i grupe u Linuxu

Za promjenu vlasništva nad datotekom ili direktorijem možete koristiti sljedeću naredbu:

chown user filename

U slučaju da želite promijeniti korisnika kao i grupu za datoteku ili direktorij, upotrijebite naredbu:

chown user:group filename

Pogledajmo to u praksi, kao što je prikazano u nastavku.

Terminal koji pokreće naredbu chown za promjenu vlasnika i grupe datoteke

U slučaju da želite promijeniti samo vlasnika grupe, koristite naredbu:

chgrp group_name filename

'chgrp' je kratica za change group. Snimka zaslona u nastavku prikazuje naredbu chgrp u upotrebi.

Terminal koji pokreće naredbu chgrp za promjenu samo grupnog vlasnika datoteke

vrsta

  • Datoteka /etc/group sadrži sve grupe definirane na sustavu.
  • Možete koristiti naredbu "grupe" da biste pronašli sve grupe čiji ste član, kao što je prikazano dolje.

Terminal pokreće naredbu groups za popis grupa kojima korisnik pripada

  • Naredbu newgrp možete koristiti za rad kao član grupe koja nije vaša zadana grupa, kao što je prikazano u nastavku.

Terminal koji pokreće naredbu newgrp za prebacivanje u drugu grupu

  • Ne možete imati dvije grupe koje posjeduju istu datoteku.
  • U Linuxu nemate ugniježđenih grupa. Jedna grupa ne može biti podgrupa druge.
  • x — izvršavanje direktorija znači dopuštenje "ulaska" u direktorij i mogućeg pristupa poddirektorijima.
  • Postoje i druge dozvole koje možete postaviti za datoteke i direktorije, a koje će biti obrađene u kasnijem naprednom vodiču.

Pitanja i odgovori

Dodajte dopuštenje za izvršavanje pomoću naredbe chmod. Simbolički oblik chmod +x script.sh daje dopuštenje za izvršavanje svima, dok chmod u+x script.sh daje dopuštenje samo vlasniku. Nakon toga možete pokrenuti skriptu izravno pomoću naredbe ./script.sh iz njenog direktorija.

umask postavlja zadane dozvole koje se uklanjaju iz novostvorenih datoteka i direktorija. Datoteke počinju od 666, a direktoriji od 777, tada je vrijednost umask-a podtracted. Uobičajena umask vrijednost 022 daje datotekama broj 644 i direktorijima broj 755. Pokrenite umask da biste vidjeli trenutnu vrijednost.

To su posebni bitovi dopuštenja. setuid pokreće program s pravima vlasnika, setgid ga pokreće s pravima grupe ili nasljeđuje grupu direktorija novim datotekama, a ljepljivi bit omogućuje samo vlasniku datoteke da je izbriše unutar dijeljenog direktorija kao što je /tmp.

Da. Samo root korisnik ili korisnik koji pokreće sudo može promijeniti vlasnika datoteke pomoću naredbe chown. Obični vlasnik može predati svoju datoteku grupi kojoj pripada, ali preusmjeravanje datoteke drugom korisniku zahtijeva root privilegije iz sigurnosnih razloga.

Ta greška znači da nemate prava za promjenu datoteke. Za pokretanje chmod naredbe morate biti vlasnik datoteke ili root; za pokretanje chown naredbe općenito vam je potreban root. Ispred naredbe stavite sudo ili se prebacite na vlasnika datoteke i pokušajte ponovno.

Koristite rekurzivnu opciju -R. chmod -R 755 myfolder primjenjuje dozvole na mapu i svaku datoteku i podmapu unutar nje, a chown -R user:group myfolder čini isto za vlasništvo. Koristite -R oprezno, jer utječe na svaku stavku ispod mape.

AI asistenti mogu prevesti zahtjev poput „učini ovu skriptu izvršnom samo za mene“ u odgovarajuću chmod naredbu, objasniti što znači način rada poput 755 i upozoriti na rizične postavke poput 777. Sigurnosni alati strojnog učenja također označavaju datoteke čija dopuštenja izgledaju opasno otvorena.

Da. GitHub kopilot Možete predložiti naredbe chmod, chown i chgrp iz kratkog komentara koji opisuje dopuštenja ili vlasnika koje želite i dovršavati ih dok tipkate. RevPregledajte svaki prijedlog prije pokretanja, budući da promjene dozvola i vlasništva utječu na sigurnost.

Sažmite ovu objavu uz: