U Linux sistemima, svaka datoteka i direktorijum imaju svog vlasnika. Vlasništvo se može modifikovati korišćenjem komande chown
. U ovom tekstu ćemo objasniti kako se to radi.
Svaki fajl ima vlasnika i grupu
Linux je operativni sistem dizajniran za više korisnika. To znači da je moguće definisati više korisničkih naloga i da se svaki validan korisnik može prijaviti na sistem. Čak i više korisnika može raditi istovremeno na jednom računaru.
Kako bi se pratio ko poseduje koje datoteke i obezbedio određeni nivo sigurnosti, Linux koristi koncept vlasništva. Svaki fajl je u vlasništvu korisnika i pripada određenoj grupi.
Kada se fajl kreira, njegov vlasnik je korisnik koji ga je napravio. Grupa kojoj fajl pripada, poznata kao „vlasnička“ grupa, je trenutna grupa korisnika. I korisnici i grupe imaju imena, kao i numeričke identifikatore, koji se nazivaju User ID (UID) i Group ID (GID).
Kada kreirate novi fajl, on postaje vaše vlasništvo i pripada vašoj trenutnoj grupi. Obično je to grupa u koju ste prijavljeni. Po defaultu, to je grupa koja ima isto ime kao vaše korisničko ime, kreirana prilikom kreiranja vašeg korisničkog naloga na sistemu.
Komanda chown
omogućava vam da promenite ove vrednosti vlasništva. Možete postaviti novog vlasnika, novu grupu, ili oboje istovremeno. Vlasnik fajla može promeniti grupu, ali samo root korisnik može promeniti vlasnika fajla jer to podrazumeva prenos vlasništva na drugog korisnika. Bez root privilegija, ne možete naterati drugog korisnika da nesvesno preuzme vlasništvo nad fajlom.
Zašto bi se menjalo vlasništvo?
Evo nekoliko situacija u kojima je to korisno:
- Kada se datoteke prenose između različitih Linux ili Unix sistema, možda ćete morati da promenite korisnike i grupe vlasnika kako bi odgovarali novom sistemu.
- Kada korisnik napusti organizaciju, svi njegovi fajlovi se prenose na drugog zaposlenog. U tom slučaju, potrebno je promeniti vlasnika i grupu.
- Ako kreirate skriptu koja je namenjena određenom korisniku.
- Kada kreirate fajl ili direktorijum kao root korisnik, ali želite da ga određeni korisnik ima na raspolaganju.
Pregled grupa, UID-a i GID-a
Da biste videli grupe kojima pripadate, koristite naredbu groups
:
groups
Da biste videli listu grupa, njihove numeričke ID-eve, kao i svoj UID i GID, koristite naredbu id
:
id
Možete koristiti opcije uz id
da biste precizirali izlaz:
-u
: Prikazuje vaš UID.-g
: Prikazuje vaš efektivni (trenutni) GID.-nu
: Prikazuje vaše korisničko ime.-ng
: Prikazuje ime vaše trenutne grupe.
id -u
id -g
id -nu
id -ng
Pregled vlasništva nad fajlovima
Da biste videli vlasnike fajla ili direktorijuma, koristite opciju -l
(duga lista) sa komandom ls
:
ls -l
Na listi se ime „Dave“ pojavljuje dva puta. Prvo pojavljivanje pokazuje da je korisnik po imenu Dave vlasnik fajla. Drugo pojavljivanje pokazuje da fajl pripada grupi koja se takođe zove „dave“.
Kada se kreira Linux korisnik, on se automatski dodaje u privatnu grupu koja nosi njegovo korisničko ime. On je jedini član te grupe.
U sledećem primeru, izvršni fajl je u vlasništvu korisnika „Mary“, a pripada Mary-inoj privatnoj grupi.
ls -l
Ovaj fajl je u vlasništvu korisnika „Oscar“, ali pripada grupi „istraživačka laboratorija“. To znači da drugi članovi te grupe mogu pristupiti fajlu u skladu sa dozvolama postavljenim za tu grupu.
Promena vlasništva korisnika
Pogledajmo nekoliko primera. Ova naredba će promeniti vlasnika fajla while.c
na korisnika „mary“:
sudo chown mary while.c
Koristimo ls
da proverimo izmene:
ls -l while.c
Možete koristiti chown
da promenite vlasništvo više fajlova odjednom:
sudo chown mary getval.c global.c goto.c
Ovo menja vlasnika svih navedenih fajlova:
ls -l getval.c global.c goto.c
Možete koristiti džokere da odaberete grupe fajlova. Ova naredba će promeniti vlasnika svih fajlova čija imena počinju slovom „c“:
sudo chown mary c*.*
Svi fajlovi sada pripadaju korisniku Mary. Imajte na umu da se vlasništvo nad grupom nije promenilo.
ls -l mary c*.*
Promenimo i vlasništvo nad direktorijumom. Samo prosledimo ime direktorijuma komandi chown
umesto imena fajla:
sudo chown mary ./archive/
Za proveru vlasništva direktorijuma, koristimo ls
, ali sa opcijom -d
(direktorijum). Ovo će prikazati svojstva direktorijuma, a ne fajlova unutar njega:
ls -l -d ./archive/
Da biste promenili vlasništvo svih fajlova u direktorijumu, koristite opciju -R
(rekurzivno). Ovo će promeniti vlasnika svih fajlova unutar direktorijuma „archive“:
sudo chown -R mary ./archive/
Sada pogledajmo fajlove unutar direktorijuma „archive“:
ls -l ./archive/
Kao što smo i očekivali, svi fajlovi sada pripadaju Mary.
Promena vlasništva grupe
Postoji nekoliko načina da se promeni vlasništvo grupe.
Da biste istovremeno promenili i vlasnika i grupu, prosledite novo ime vlasnika i novo ime grupe razdvojene dvotačkom „:“. Grupa mora već postojati:
sudo chown mary:researchlab charm.c
Vlasnik i grupa fajla su sada promenjeni:
ls -l charm.c
Skraćeni način da promenite vlasništvo grupe na trenutnu grupu novog vlasnika je da samo unesete dvotačku i izostavite ime grupe:
sudo chown mary: caps.c
ls -l caps.c
Vlasnik i grupa su sada promenjeni na „mary“.
Da biste promenili samo vlasništvo grupe, stavite dvotačku ispred imena grupe i izostavite korisničko ime. Vlasnik fajla se neće promeniti:
sudo chown :researchlab at.c
ls -l at.c
Vlasništvo grupe je promenjeno, dok je korisnik ostao isti.
Korišćenje chown sa UID i GID vrednostima
Možete koristiti numeričke UID i GID vrednosti sa naredbom chown
. Ova naredba će postaviti vlasnika i grupu fajla na korisnika čiji UID i GID su 1001:
sudo chown 1001:1001 at.c
ls -l at.c
Vlasništvo je bitno
U Linux sistemima, vlasništvo igra veliku ulogu u sigurnosti fajlova, a zajedno sa dozvolama za fajlove, obezbeđuje pristup fajlovima na sistemu. Koristite naredbe chown
i chmod
za upravljanje pristupom fajlovima na vašem sistemu.