V oprávněních systému Linux jsou všechny soubory včetně adresářů přidruženy k vlastnictví uživatele a skupiny. Navíc soubory a adresáře a obvykle přiřazená oprávnění určující přístupová práva, jako je čtení, zápis a spouštění, nakonec určují, kdo má jaká práva k nim přistupovat.
V tomto tutoriálu vám ukážu, jak změnit skupinové vlastnictví souboru nebo adresáře pomocí příkazu chgrp. Linuxový příkaz change group, který je známý jako chgrp
se používá ke změně názvu skupiny, do které soubor nebo adresář patří. Na rozdíl od příkazu chown, který vyžaduje zadání jména uživatele i skupiny, chgrp
vyžaduje pouze skupinu.
Syntaxe příkazu chgrp
Syntaxe pro změnu skupiny, do které soubor patří, je poměrně snadná. Jednoduše vyvolejte chgrp
a poté definujte název skupiny následovaný názvem objektů.
$ chgrp OPTION group_name /path/to/file or directory
Atribut jméno_skupiny představuje novou skupinu, kterou soubor nebo adresář získá. Kromě toho můžete místo názvu skupiny zadat GID (ID skupiny). V takovém případě musíte k GID připojit znaménko plus (+).
Změňte skupinu souboru pomocí příkazu chgrp
V této části se podíváme na to, jak změnit skupinové vlastnictví souboru. Před změnou skupiny souboru pomocí příkazu chgrp se doporučuje nejprve ověřit aktuální skupinu, do které soubor patří. To lze snadno provést pomocí příkazu ls, který vytiskne oprávnění k souboru, jak je uvedeno:
$ ls -l
Níže uvedený příklad vytiskne oprávnění k souboru s názvem settings.py
v adresáři docs.
Z výše uvedeného výstupu soubor patří uživateli 'Winnie' a skupině 'Winnie'. Chcete-li změnit skupinu souboru například z „Winnie“ na skupinu „linoxide“, spusťte příkaz chgrp, jak je znázorněno:
$ chgrp linoxide settings.py
Ve většině případů však při změně skupiny souboru nebo adresáře jako běžný uživatel narazíte na chgrp operation not permitted
chyba, jak je znázorněno na obrázku níže. Chyba označuje, že uživatel nemá dostatečná oprávnění ke změně skupinového vlastnictví souboru.
Řešením této výzvy je přidat běžného uživatele do skupiny sudoers a vyvolat příkaz sudo, jak je uvedeno níže:
$ sudo chgrp linoxide settings.py
Z výše uvedeného výstupu můžeme vidět, že jsme byli úspěšní ve změně skupiny na 'linoxide' po vyvolání příkazu sudo a odeslání hesla.
Dále můžete zadat více souborů jako argumenty při použití příkazu chgrp následovně:
$ sudo chgrp group_name file_1 file_2 file_3
V příkladu níže máme 3 soubory:settings.py
, file1.txt
a file2.txt
všechny patří do skupiny 'Winnie'. Pojďme nyní změnit vlastnictví skupiny na „linoxid“. Syntaxe bude:
$ sudo chgrp linoxide settings.py file1.txt file2.txt
Rekurzivně změnit vlastnictví skupiny
Někdy může být nutné rekurzivně změnit skupinu všech souborů a podadresářů adresáře. Chcete-li rekurzivně změnit název skupiny, použijte -R
příznak, jak je znázorněno v syntaxi níže.
$ sudo chgrp group-name directory
Chcete-li například změnit vlastnictví /var/www/html/nextcloud
adresář a jeho obsah do www-data group
, spusťte příkaz:
$ sudo chgrp -R www-data /var/www/html/nextcloud
Změna skupinového vlastnictví symbolických odkazů
Použití rekurzivní možnosti nepřekročí symbolické odkazy, a proto si symbolické odkazy zachovají své skupinové vlastnictví. Chcete-li na symbolické odkazy použít vlastnictví skupiny, předejte -h
parametr, jak je znázorněno:
$ sudo chgrp -Rh www-data /var/www/html/nextcloud
Závěr
V tomto tutoriálu jsme vás provedli chgrp
příkaz v Linuxu. I když toho můžete dosáhnout pomocí příkazu chown, příkaz chgrp nabízí mnohem jednodušší způsob, jak toho dosáhnout.
Někdo by se mohl zeptat, proč máme chgrp, když existuje příkaz chown. Kód Chgrp byl vytvořen mnohem starší, chown zpočátku nemohl nastavit skupinu.
Poznámka:Chown pro změnu pouze skupiny chown :group
stále není přenosný nebo standardní na mnoha platformách.
Děkujeme za přečtení a poskytněte nám prosím svůj názor v sekci komentářů níže.