Cum să utilizați comanda chgrp pe Linux

Comanda chgrp pe Linux schimbă proprietatea de grup a unui fișier sau director. De ce să-l folosești în loc de chown? Uneori, un cuțit elvețian este grozav, dar atunci când ai nevoie cu adevărat de un bisturiu, doar un bisturiu este potrivit.

Când ar trebui să utilizați chgrp

Utilizați comanda chgrp pentru a schimba proprietatea de grup a unui fișier sau director. Comanda chown vă permite să schimbați proprietarul utilizatorului și proprietarul grupului unui fișier sau director. Deci de ce ai avea nevoie sau ai folosi chgrp?

Ei bine, în primul rând, este ușor. Folosirea chown pentru a schimba doar setarea proprietarului grupului este puțin contraintuitivă. Trebuie să fii foarte atent la sintaxă. Se bazează pe amplasarea corectă a două puncte „:”. Găsiți asta și nu faceți schimbarea pe care credeați că sunteți.

Sintaxa lui chgrp este cu totul mai simplu. De asemenea, are o caracteristică îngrijită care vă spune în termeni simpli ce modificări tocmai a făcut.

Este un instrument special conceput și dedicat sarcinii în cauză. chgrp îmbrățișează complet principiul de design Unix de a face un lucru și de a-l face bine. Să vedem ce are de oferit.

Modificarea proprietății de grup a unui fișier

Pentru a schimba proprietatea de grup a unui fișier este foarte simplu. Trebuie să utilizați sudo cu chgrp. Grupurile nu sunt deținute de utilizatori, așa că dacă un fișier sau un director este mutat dintr-un grup în altul nu este o decizie care ține de utilizatorul obișnuit. Aceasta este o meserie pentru cineva cu privilegii de root.

  Cum să dezactivați paravanul de protecție UFW în Linux

Vom schimba proprietatea de grup a unui fișier sursă C numit „gc.c”. Îl vom schimba în grupul „devteam”.

Putem verifica valorile actuale de proprietate folosind ls cu opțiunea -l (lista lungă).

ls -l

Aceasta este comanda pentru a schimba proprietatea grupului. Tastați sudo, a space, chgrp , a space, numele grupului pe care îl vom seta ca proprietar al grupului, un spațiu și numele fișierului.

sudo chgrp devteam gc.c

Vom verifica dacă modificarea a fost făcută folosind din nou ls -l.

ls -l

Putem vedea că proprietatea grupului a fost schimbată din „dave” în „devteam”.

Pentru a schimba calitatea de proprietar al grupului pentru un set de fișiere simultan, puteți folosi metacaracterele. Să modificăm proprietatea grupului pentru toate fișierele sursă C din directorul curent. Vom folosi această comandă:

sudo chgrp devteam *.c

Putem verifica că modificarea a fost făcută așa cum ne așteptam folosind ls -l.

ls -l

Toate fișierele sursă C din acest director au fost modificate, astfel încât proprietarul grupului lor să fie „devteam”.

Folosind opțiunea -c (modificări), chgrp va lista modificările pe care le-a făcut fiecărui fișier. Să presupunem că am făcut o greșeală, am vrut ca fișierele sursă C să aibă proprietatea grupului setată la „laborator de cercetare”. Să corectăm asta acum. Vom folosi această comandă:

sudo chgrp -c researchlab *.c

Modificările sunt făcute pentru noi și fiecare este listată așa cum se întâmplă, permițându-ne să verificăm că ceea ce am schimbat este corect.

Modificarea proprietății de grup a unui director

Modificarea proprietății de grup a unui director este la fel de simplă. Putem folosi această comandă pentru a schimba proprietatea grupului pentru directorul „backup”.

sudo chgrp -c devteam ./backup

Pentru a fi clar, această comandă va schimba proprietatea de grup a directorului în sine, nu fișierele din interiorul directorului. Vom folosi ls -l cu opțiunea -d (director) pentru a verifica dacă acesta este cazul.

ls -l -d

Proprietatea de grup a directorului în sine a fost schimbată în „devteam”.

  Cum se configurează Docker pe Linux

Opțiunea recursiva

Dacă dorim să schimbăm proprietatea grupului pentru fișierele și directoarele stocate într-un director, putem folosi opțiunea -R (recursivă). Acest lucru va face ca chgrp să schimbe proprietatea grupului pentru toate fișierele și subdirectoarele de sub directorul țintă.

Să încercăm asta cu directorul „backup”. Iată comanda:

sudo chgrp -R devteam ./backup

Vom examina fișierele dintr-unul dintre subdirectoarele imbricate cu comanda ls și vom verifica, de asemenea, setările unuia dintre subdirectoarele imbricate folosind ls .

ls -l ./backup/images
ls -l -d ./backup/images

Putem vedea că proprietatea grupului a fost schimbată atât pentru fișierele din subdirectoarele imbricate, cât și pentru subdirectoarele imbricate.

Utilizarea unui fișier de referință

Până acum, am spus în mod explicit chgrp numele grupului pe care dorim să-l folosim. De asemenea, putem folosi chgrp într-un mod care spune „setați proprietatea de grup a acestui fișier la aceeași proprietate de grup ca și fișierul respectiv”.

Să setăm ca proprietatea grupului „gc.h” să fie aceeași cu „gc.c”.

Putem verifica setările curente ale „gc.c” și „gc.h” folosind ls.

ls -l gc.c
ls -l gc.h

Opțiunea pe care trebuie să o folosim este opțiunea –reference. Proprietatea grupului este copiată din fișierul de referință în celălalt fișier. Aveți grijă să obțineți fișierele în modul corect.

sudo chgrp --reference=gc.c gc.h

Vom folosi ls pentru a verifica dacă setările au fost transferate în „gc.h”.

ls -l gc.h

Fișierul „gc.h” are acum aceeași proprietate de grup ca „gc.c”.

Utilizarea chgrp cu Link-uri simbolice

Putem folosi chgrp pentru a schimba proprietatea grupului asupra legăturilor simbolice sau a fișierului la care este indicat linkul simbolic.

  Cum să joci jocuri MS-Dos pe Linux cu DOSBox

Pentru acest exemplu, am creat un legătură simbolică numit „button_link”. Acest lucru indică un fișier numit „./backup/images/button_about.png”. Pentru a schimba proprietatea de grup a fișierului, trebuie să folosim opțiunea –dereference. Aceasta va schimba setările pentru fișier și va lăsa linkul simbolic neschimbat.

Să verificăm setările pentru legătura simbolică folosind ls -l.

ls -l button_link

Comanda de modificare a fișierului este:

sudo chgrp --dereference devteam button_link

Vom verifica dacă linkul simbolic este neschimbat folosind ls și vom verifica, de asemenea, setările de proprietate a grupului pentru fișier.

ls -l button_link
ls -l ./backup/images/button_about.png

Legătura simbolică este neschimbată, iar fișierul „button_about.png” a fost modificat de proprietatea grupului.

Pentru a schimba proprietatea de grup a legăturii simbolice în sine, trebuie să folosim opțiunea –no-dereference.

Comanda de utilizat este:

sudo chgrp --no-dereference devteam button_link

Vom folosi ls -l pentru a verifica dacă noul proprietar de grup a fost setat pentru legătura simbolică.

ls -l button-link

De data aceasta, elementul afectat a fost linkul simbolic în sine, nu fișierul către care indică.

Frumos și simplu

Simplu este bun. Înseamnă că există mai puțin de amintit și mai puțin de confundat. Asta ar trebui să însemne mai puține greșeli.