Cum să utilizați comanda chown pe Linux

În sistemele Linux, atât fișierele cât și directoarele sunt asociate unui anumit proprietar. Utilizând comanda `chown`, puteți modifica aceste asocieri. Acest ghid vă va arăta cum să faceți acest lucru.

Fiecare Resursă Aparține unui Utilizator și unui Grup Specific

Linux este un sistem de operare multi-utilizator, oferind posibilitatea de a defini multiple conturi de utilizator. Fiecare utilizator valid poate accesa computerul și, în plus, mai mulți utilizatori pot lucra simultan pe același dispozitiv.

Pentru a asigura o gestionare eficientă a fișierelor și pentru a aplica măsuri de securitate, Linux utilizează conceptul de proprietate. Fiecare fișier este legat de un proprietar (un utilizator) și un grup.

Când creați un fișier, proprietarul acestuia este implicit utilizatorul care l-a creat. Grupul căruia îi este alocat fișierul este grupul curent al utilizatorului. Atât utilizatorii, cât și grupurile au nume și identificatori numerici unici, numiți UID (Identificator de Utilizator) și GID (Identificator de Grup).

În mod obișnuit, atunci când creați un fișier, acesta devine proprietatea dvs. și a grupului dvs. curent. Acest grup este de obicei cel în care sunteți conectat, iar implicit, este un grup care are același nume ca și utilizatorul și a fost creat odată cu contul dvs.

Comanda `chown` vă oferă posibilitatea de a modifica aceste setări de proprietate. Puteți stabili un nou proprietar, un nou grup sau ambele simultan. Proprietarul unui fișier poate modifica proprietatea asupra grupului, însă numai utilizatorul root are permisiunea de a schimba proprietarul utilizator, datorită implicațiilor asupra altor utilizatori. Fără privilegii root, nu aveți posibilitatea de a atribui forțat un fișier altui utilizator.

Motive pentru Schimbarea Proprietății Fișierelor

Iată câteva scenarii unde modificarea proprietarului unui fișier ar putea fi necesară:

  • La transferul fișierelor între sisteme Linux sau Unix diferite, va trebui să modificați proprietarii fișierelor pentru a corespunde noului utilizator și grup de pe sistemul destinație.
  • În cazul în care un utilizator părăsește organizația, fișierele sale vor trebui să fie atribuite unui alt membru al echipei.
  • Crearea unui script care va fi utilizat de un utilizator specific.
  • Crearea unui fișier sau director sub contul root, care ulterior trebuie să fie accesibil unui anumit utilizator.

Vizualizarea Grupurilor, UID-ului și GID-ului

Pentru a vedea grupurile din care faceți parte, utilizați comanda `groups`:

groups

Pentru a obține o listă cu grupurile, ID-urile lor numerice, precum și propriul UID și GID, utilizați comanda `id`:

id

Puteți utiliza opțiuni suplimentare cu comanda `id` pentru a afișa informații mai precise:

  • `-u`: Afișează UID-ul dvs.
  • `-g`: Afișează GID-ul dvs. efectiv.
  • `-nu`: Afișează numele dvs. de utilizator.
  • `-ng`: Afișează numele grupului dvs. curent.
id -u
id -g
id -nu
id -ng

Verificarea Proprietarului și a Grupului unui Fișier

Pentru a vedea proprietarii unui fișier sau director, folosiți opțiunea `-l` (listă lungă) cu comanda `ls`:

ls -l

Numele „dave” apare de două ori în această listă. Prima apariție indică utilizatorul proprietar, iar a doua, grupul căruia îi aparține fișierul. În acest caz, fișierul este deținut de utilizatorul „dave” și aparține grupului „dave”.

În mod implicit, când un utilizator este creat, el este adăugat într-un grup privat cu același nume. Ei sunt singurul membru al acelui grup.

În următorul exemplu, fișierul executabil este deținut de utilizatorul „mary”, iar grupul este cel privat al lui „mary”.

ls -l

În acest caz, fișierul este deținut de „oscar”, dar aparține grupului „researchlab”. Asta înseamnă că și alți membri ai grupului au acces la fișier, conform permisiunilor setate pentru acel grup.

Schimbarea Proprietarului unui Fișier

Să vedem câteva exemple practice. Această comandă va schimba proprietarul fișierului `while.c` în utilizatorul „mary”.

sudo chown mary while.c

Putem verifica modificările cu comanda `ls`.

ls -l while.c

Puteți utiliza `chown` pentru a schimba proprietarul mai multor fișiere simultan.

sudo chown mary getval.c global.c goto.c

Această comandă schimbă proprietarul tuturor celor trei fișiere.

ls -l getval.c global.c goto.c

Puteți folosi metacaractere pentru a selecta grupuri de fișiere. Această comandă va schimba proprietarul tuturor fișierelor care încep cu litera „c”.

sudo chown mary c*.*

Toate fișierele care încep cu „c” sunt acum deținute de „mary”. Observați că grupurile nu au fost modificate.

ls -l mary c*.*

Să schimbăm proprietarul unui director. Trecem pur și simplu numele directorului la comanda `chown` în loc de numele unui fișier.

sudo chown mary ./archive/

Pentru a verifica proprietatea unui director, utilizăm `ls` cu opțiunea `-d` (director). Aceasta afișează proprietățile directorului, nu fișierele din interiorul său.

ls -l -d ./archive/

Pentru a schimba proprietarul tuturor fișierelor dintr-un director, utilizați opțiunea `-R` (recursivă). Aceasta va schimba proprietarul tuturor fișierelor din folderul `archive`.

sudo chown -R mary ./archive/

Să verificăm acum fișierele din directorul `archive`.

ls -l ./archive/

Așa cum era de așteptat, toate fișierele sunt acum deținute de „mary”.

Schimbarea Proprietății Grupului

Există mai multe metode de a schimba grupul unui fișier.

Pentru a schimba proprietarul și grupul în același timp, introduceți noul nume de proprietar, urmat de două puncte `”:”` și noul nume de grup. Grupul trebuie să existe deja.

sudo chown mary:researchlab charm.c

Atât proprietarul utilizatorului, cât și grupul căruia îi aparține fișierul, au fost modificate.

ls -l charm.c

O metodă prescurtată de a schimba proprietatea grupului în grupul curent al noului proprietar, este să folosiți două puncte și să omiteți numele grupului.

sudo chown mary: caps.c

ls -l caps.c

Atât proprietarul, cât și grupul, au fost modificate în „mary”.

Pentru a modifica doar proprietatea grupului, introduceți două puncte, omiteți numele utilizatorului și introduceți noul grup. Proprietarul nu va fi schimbat.

sudo chown :researchlab at.c

ls -l at.c

Doar proprietatea grupului a fost schimbată.

Utilizarea UID-ului și GID-ului cu Chown

Puteți utiliza valorile numerice ale UID-ului și GID-ului cu comanda `chown`. Această comandă va seta atât utilizatorul cât și grupul la „mary” folosind ID-urile lor.

sudo chown 1001:1001 at.c

ls -l at.c

Proprietatea ca Aspect Crucial

Proprietatea fișierelor joacă un rol esențial în securitatea sistemelor Linux, împreună cu permisiunile. Utilizați comenzile `chown` și `chmod` pentru a gestiona accesul la fișiere în mod eficient.