A chgrp parancs használata Linuxon

A chgrp parancs Linuxon megváltoztatja egy fájl vagy könyvtár csoportos tulajdonjogát. Miért használjuk chown helyett? Néha egy svájci kés nagyszerű, de ha valóban szüksége van egy szikére, akkor csak egy szike megteszi.

Mikor érdemes használni a chgrp

A chgrp paranccsal módosíthatja egy fájl vagy könyvtár csoportos tulajdonjogát. A chown parancs lehetővé teszi egy fájl vagy könyvtár felhasználó- és csoporttulajdonosának megváltoztatását. Szóval miért lenne szükséged vagy használnod a chgrp-t?

Nos, egyrészt könnyű. A chown használata a csoport tulajdonosi beállításának módosítására kissé ellentmondásos. Nagyon óvatosnak kell lenni a szintaxissal. Ez a kettőspont „:” helyes elhelyezésétől függ. Helyezze el rosszul, és nem hajtja végre azt a változást, amelyre gondolt.

A chgrp szintaxisa az teljesen egyértelműbb. Van egy ügyes funkciója is, amely egyszerűen elmondja, hogy milyen változtatásokat hajtott végre.

Ez egy erre a célra kialakított és dedikált eszköz az adott feladathoz. A chgrp teljes mértékben magáévá teszi a Unix tervezési elvét, miszerint egy dolgot kell csinálni és jól csinálni. Lássuk, mit kínál.

Egy fájl csoportos tulajdonjogának megváltoztatása

A fájl csoportos tulajdonjogának megváltoztatása nagyon egyszerű. Használnod kell a sudo-t a chgrp-vel. A csoportok nem a felhasználók tulajdonában vannak, így az, hogy egy fájlt vagy könyvtárat áthelyeznek-e egyik csoportból a másikba, nem az átlagos felhasználó döntése. Ez egy olyan munka, aki root jogosultsággal rendelkezik.

  6 legjobb távelérési alkalmazás Linuxhoz

Meg fogjuk változtatni a „gc.c” nevű C-forrásfájl csoportos tulajdonjogát. Lecseréljük a „devteam” csoportra.

Az aktuális tulajdonosi értékeket az ls használatával ellenőrizhetjük a -l (hosszú lista) opcióval.

ls -l

Ez a parancs a csoport tulajdonjogának megváltoztatásához. Írja be a sudo szóközt, chgrp , szóközt, annak a csoportnak a nevét, amelyet csoporttulajdonosként fogunk beállítani, egy szóközt és a fájl nevét.

sudo chgrp devteam gc.c

Ellenőrizzük, hogy a változtatás megtörtént-e az ls -l ismételt használatával.

ls -l

Láthatjuk, hogy a csoport tulajdonjogát „dave”-ről „devteam”-re változtatták.

Ha egyszerre szeretné módosítani a csoport tulajdonjogát egy fájlkészlethez, helyettesítő karaktereket használhat. Változtassuk meg a csoport tulajdonjogát az összes C forrásfájlnál az aktuális könyvtárban. Ezt a parancsot fogjuk használni:

sudo chgrp devteam *.c

Az ls -l használatával ellenőrizhetjük, hogy a változtatás a vártnak megfelelően történt-e.

ls -l

Ebben a könyvtárban az összes C forrásfájl megváltozott, így a csoport tulajdonjoga „devteam”.

A -c (changes) kapcsoló használatával a chgrp kilistázza az egyes fájlokon végzett változtatásokat. Tegyük fel, hogy hibát követtünk el, és azt akartuk, hogy a C forrásfájlok csoporttulajdonsága „researchlab” legyen. Most javítsuk ki. Ezt a parancsot fogjuk használni:

sudo chgrp -c researchlab *.c

A változtatásokat helyettünk hajtják végre, és mindegyik a bekövetkezésükkor kerül felsorolásra, így ellenőrizhetjük, hogy helyes-e, amit megváltoztattunk.

  A háttérkép és a téma módosítása a Google Chromebookon

A címtár csoportos tulajdonjogának megváltoztatása

A címtár csoportos tulajdonjogának megváltoztatása ugyanolyan egyszerű. Ezzel a paranccsal módosíthatjuk a „backup” könyvtár csoport tulajdonjogát.

sudo chgrp -c devteam ./backup

Az egyértelműség kedvéért ez a parancs magának a könyvtárnak a csoportos tulajdonjogát módosítja, nem a könyvtárban lévő fájlokét. Az ls -l-t használjuk a -d (könyvtár) opcióval annak ellenőrzésére, hogy ez a helyzet.

ls -l -d

A címtár csoportos tulajdonjoga „devteam”-re módosult.

A rekurzív opció

Ha meg akarjuk változtatni a csoport tulajdonjogát a könyvtárban tárolt fájlok és könyvtárak esetében, használhatjuk a -R (rekurzív) opciót. Ennek hatására a chgrp megváltoztatja a csoport tulajdonjogát a célkönyvtár alatti összes fájl és alkönyvtár esetében.

Próbáljuk meg ezt a „backup” könyvtárral. Íme a parancs:

sudo chgrp -R devteam ./backup

Az ls paranccsal átnézzük az egyik beágyazott alkönyvtárban lévő fájlokat, és az ls segítségével ellenőrizzük az egyik beágyazott alkönyvtár beállításait is.

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

Láthatjuk, hogy mind a beágyazott alkönyvtárak, mind a beágyazott alkönyvtárak fájlok csoporttulajdona megváltozott.

Referenciafájl használata

Eddig kifejezetten megmondtuk a chgrp-nek a használni kívánt csoport nevét. Használhatjuk a chgrp-t úgy is, hogy „állítsa be a fájl csoportos tulajdonjogát ugyanarra a csoport tulajdonjogára, mint az adott fájl”.

Állítsuk be a „gc.h” csoport tulajdonjogát a „gc.c” értékkel.

Az ls segítségével ellenőrizhetjük a „gc.c” és a „gc.h” aktuális beállításait.

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

Az az opció, amelyet használnunk kell, a –reference opció. A csoport tulajdonjogát a rendszer a referenciafájlból a másik fájlba másolja. Ügyeljen arra, hogy a fájlokat a megfelelő irányba helyezze el.

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

Az ls segítségével ellenőrizzük, hogy a beállítások átkerültek-e a „gc.h” címre.

ls -l gc.h

A „gc.h” fájl most már ugyanazzal a csoporttulajdonossal rendelkezik, mint a „gc.c”.

  Hogyan lehet megtalálni egy réteg vagy egy elem méreteit a Photoshopban

A chgrp használata szimbolikus hivatkozásokkal

A chgrp segítségével megváltoztathatjuk a szimbolikus hivatkozások vagy a szimbolikus hivatkozás által mutatott fájl csoportos tulajdonjogát.

Ehhez a példához létrehoztunk egy szimbolikus link „button_link” néven. Ez a „./backup/images/button_about.png” nevű fájlra mutat. A fájl csoportos tulajdonjogának megváltoztatásához a –dereference opciót kell használnunk. Ez megváltoztatja a fájl beállításait, és a szimbolikus hivatkozás változatlan marad.

Ellenőrizzük a szimbolikus hivatkozás beállításait az ls -l használatával.

ls -l button_link

A fájl megváltoztatására szolgáló parancs a következő:

sudo chgrp --dereference devteam button_link

Ellenőrizzük, hogy a szimbolikus hivatkozás változatlan-e az ls segítségével, és ellenőrizzük a fájl csoporttulajdonosi beállításait is.

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

A szimbolikus hivatkozás változatlan, és a „button_about.png” fájl csoporttulajdona módosult.

Magának a szimbolikus hivatkozásnak a csoportos tulajdonjogának megváltoztatásához a –no-dereference opciót kell használnunk.

A használandó parancs a következő:

sudo chgrp --no-dereference devteam button_link

Az ls -l billentyűket használjuk annak ellenőrzésére, hogy a szimbolikus hivatkozáshoz be van-e állítva az új csoporttulajdon.

ls -l button-link

Ezúttal maga a szimbolikus hivatkozás volt az érintett elem, nem az a fájl, amelyre mutat.

Szép és egyszerű

Az egyszerű jó. Ez azt jelenti, hogy kevesebbre kell emlékezni, és kevesebbet kell összezavarni. Ez kevesebb hibát jelent.