Co je příkaz chgrp v Linuxu?
Pokud jste použili naši kalkulačku chmod, jste si vědomi oprávnění k souborům v Linuxu, pravděpodobně jste si vědomi vlastnictví skupiny.
Příkaz chgrp v Linuxu se používá pro změnu skupiny souboru nebo adresáře. Zkratka znamená ‚změnit skupinu‘.
Syntaxe příkazu chgrp je:
chgrp [options] groupname file
5 praktických příkladů příkazu chgrp v Linuxu
Podívejme se, jak používat příkaz chgrp s těmito užitečnými příklady.
1. Změnit skupinu souborů/adresářů
Toto je nejjednodušší a možná nejvýznamnější použití chgrp. Chcete-li změnit skupinové vlastnictví souboru nebo adresáře, můžete použít příkaz chgrp následujícím způsobem:
chgrp group_name file_name
Můžete také změnit skupinu pro více souborů najednou:
chgrp group_name file1 file2 file3
Nemusíte být ve stejném adresáři jako soubor. Můžete také zadat absolutní nebo relativní cestu.
Důležitá jsou vaše aktuální privilegia. Pokud se pokusíte změnit skupiny na admin nebo root, možná budete potřebovat oprávnění superuživatele. V takových případech byste měli vidět chybu „operace není povolena“.
Tip :chgrp podporuje doplňování karet. Stačí zadat několik písmen názvu skupiny a stisknout kartu, abyste viděli, jaké skupiny s těmito písmeny existují.
2. Použijte chgrp rekurzivně ke změně skupiny všech souborů a podadresářů
Ve výchozím nastavení, pokud používáte chgrp s adresářem, změní pouze skupinu adresáře. Soubory a podadresáře zůstávají stejné.
Pokud chcete změnit skupinu všech souborů v adresářích a v podadresářích, můžete použít rekurzivní volbu -R.
chgrp -R group_name path_to_directory
3. Zjistěte, zda se vám podařilo změnit skupinu
Zda byla skupina změněna, můžete zjistit pomocí příkazu ‚ls -l‘. Ale co kdybyste změnili skupinu pro několik souborů najednou jako pomocí rekurzivní možnosti, kterou jste viděli v předchozí části?
chgrp poskytuje podrobný režim, který vám řekne, jaké operace váš příkaz chgrp provedl. Můžete použít volbu -v ke spuštění příkazu chgrp v podrobném režimu.
chgrp -vR abhishek samplechanged group of 'sample/agatha.txt' from sudo to abhishek
group of 'sample/a.text' retained as abhishek
changed group of 'sample/text/sherlock.txt' from sudo to abhishek
changed group of 'sample/text' from sudo to abhishek
changed group of 'sample' from sudo to abhishek
Můžete si všimnout, že podrobný režim také říká, zda skupina souboru zůstala stejná. Pokud chcete tyto informace vidět pouze pro soubory, u kterých skutečně došlo ke změně vlastnictví skupiny, můžete použít volbu -c.
Tip :Pomocí chgrp můžete udělit oprávnění ke spuštění příkazu (v bin nebo init) nebo tak, aby příkaz mohli spustit všichni uživatelé patřící do určité skupiny (místo root).
4. Změňte vlastnictví skupiny stejně jako u referenčního souboru
Představte si, že chcete změnit skupinu souboru A stejně jako soubor B. Jak byste to udělali? Můžete vyhledat skupinu souboru B a poté použít příkaz chgrp s názvem skupiny souboru B.
No, to je jeden způsob, jak to udělat. Chgrp však poskytuje vyhrazený způsob změny skupiny na základě referenčního souboru namísto explicitního použití názvu skupiny.
chgrp --reference=file2 file1
To je zvláště užitečné, pokud píšete skript, kde je třeba změnit vlastníky skupin souborů jako referenční soubor.
5. Použití chgrp se symbolickými odkazy
Ve výchozím nastavení, pokud použijete příkaz chgrp se symbolickým odkazem, je to vlastník skupiny odkazovaného souboru, který se změní, zatímco skupina symbolického odkazu zůstane tak, jak je.
Například toto je sate odkazu a jeho odkazovaného souboru:
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek abhishek 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
Pokud nyní změníte skupinu symbolického odkazu takto:
chgrp sudo link.txt
Skupina symbolických odkazů zůstane stejná, zatímco skupina odkazovaného souboru se změní.
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek sudo 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
Pokud chcete změnit pouze skupinové vlastnictví symbolického odkazu a ne samotný odkazovaný soubor, můžete použít volbu -h.
chgrp -h sudo link.txt
Nebudu to však navrhovat, protože v Linuxu nemají oprávnění k propojení význam. Zde záleží na odkazovaném souboru.
Proč používat chgrp, když pro změnu skupiny můžete použít chown?
Pro změnu skupiny souboru můžete také použít příkaz chown, ale změna pouze skupiny pomocí příkazu chown není standardní. Také by mohlo být matoucí používat chown pro tento účel. chgrp je docela jednoduché a pro změnu skupiny souboru nebo adresáře se doporučuje použít příkaz chgrp.
Doufám, že se vám líbily příklady příkazů chgrp. Máte-li dotazy, návrhy nebo jednoduché poděkování, použijte pole pro komentáře níže.