Как да използвате командата chgrp в Linux

Командата chgrp в Linux променя груповата собственост на файл или директория. Защо да го използвате вместо chown? Понякога швейцарският армейски нож е страхотен, но когато наистина имате нужда от скалпел, само скалпел ще свърши работа.

Кога трябва да използвате chgrp

Можете да използвате командата chgrp, за да промените собствеността на групата на файл или директория. Командата chown ви позволява да промените собственика на потребителя и собственика на групата на файл или директория. И така, защо имате нужда или да използвате chgrp?

Е, от една страна, това е лесно. Използването на chown за промяна само на настройката на собственика на групата е малко противоинтуитивно. Трябва да внимавате много със синтаксиса. Зависи от правилното поставяне на двоеточие „:“. Положете това погрешно и не правите промяната, която си мислехте.

Синтаксисът на chgrp е като цяло по-ясно. Той също така има чиста функция, която ви казва с прости думи какви промени току-що е направил.

Това е специално създаден и специален инструмент за текущата задача. chgrp напълно прегръща принципа на дизайна на Unix да правите едно нещо и да го правите добре. Нека видим какво може да предложи.

Промяна на груповата собственост на файл

Промяната на груповата собственост на файл е много проста. Трябва да използвате sudo с chgrp. Групите не са собственост на потребители, така че дали даден файл или директория се преместват от една група в друга, не е решение, което е на обикновения потребител. Това е работа за някой с root привилегии.

  Как да убивате програми от терминала в Linux

Ще променим груповата собственост на изходния файл на C, наречен „gc.c.“ Ще го променим на групата „devteam“.

Можем да проверим текущите стойности на собственост, като използваме ls с опцията -l (дълъг списък).

ls -l

Това е командата за промяна на собствеността на групата. Въведете sudo, интервал, chgrp, интервал, името на групата, която ще зададем като собственик на групата, интервал и името на файла.

sudo chgrp devteam gc.c

Ще проверим дали промяната е направена, като използваме отново ls -l.

ls -l

Можем да видим, че собствеността на групата е променена от „dave“ на „devteam“.

За да промените собствеността на групата за набор от файлове наведнъж, можете да използвате заместващи знаци. Нека променим собствеността на групата за всички изходни файлове на C в текущата директория. Ще използваме тази команда:

sudo chgrp devteam *.c

Можем да проверим дали промяната е направена, както очаквахме, като използваме ls -l.

ls -l

Всички изходни файлове на C в тази директория са променени, така че тяхната групова собственост е „devteam“.

С помощта на опцията -c (промени) chgrp ще изброи промените, които е направил във всеки файл. Да предположим, че сме направили грешка, искахме изходните файлове на C да имат груповата собственост, зададена на „researchlab“. Нека поправим това сега. Ще използваме тази команда:

sudo chgrp -c researchlab *.c

Промените се правят за нас и всяка от тях е изброена, както се случва, което ни позволява да проверим дали това, което сме променили, е правилно.

  Как да използвате Dropbox на Linux

Промяна на груповата собственост на директория

Промяната на груповата собственост на директория е също толкова проста. Можем да използваме тази команда, за да променим собствеността на групата за директорията „backup“.

sudo chgrp -c devteam ./backup

За да е ясно, тази команда ще промени собствеността на групата на самата директория, а не на файловете вътре в директорията. Ще използваме ls -l с опцията -d (директория), за да проверим дали това е така.

ls -l -d

Груповата собственост на самата директория е променена на „devteam“.

Рекурсивната опция

Ако искаме да променим собствеността на групата за файловете и директориите, съхранявани в дадена директория, можем да използваме опцията -R (рекурсивна). Това ще накара chgrp да промени собствеността на групата за всички файлове и поддиректории под целевата директория.

Нека опитаме това с директорията “backup”. Ето командата:

sudo chgrp -R devteam ./backup

Ще прегледаме файловете в една от вложените поддиректории с командата ls и също така ще проверим настройките на една от вложените поддиректории с помощта на ls.

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

Можем да видим, че собствеността на групата е променена както за файловете във вложените поддиректории, така и за вложените поддиректории.

Използване на референтен файл

Досега изрично казвахме на chgrp името на групата, която искаме да използваме. Можем също да използваме chgrp по начин, който казва „задайте груповата собственост на този файл на същата групова собственост като този файл“.

Нека зададем груповата собственост на „gc.h“ да бъде същата като „gc.c“.

Можем да проверим текущите настройки на “gc.c” и “gc.h” с помощта на ls.

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

Опцията, която трябва да използваме, е опцията –reference. Собствеността на групата се копира от референтния файл в другия файл. Внимавайте да подредите файловете по правилния начин.

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

Ще използваме ls, за да проверим дали настройките са прехвърлени към „gc.h.“

ls -l gc.h

Файлът „gc.h“ вече има същата групова собственост като „gc.c“.

  Как да конфигурирате периферни устройства на Razer Gaming на Linux с Polychromatic

Използване на chgrp със символни връзки

Можем да използваме chgrp, за да променим груповата собственост на символните връзки или на файла, към който сочи символната връзка.

За този пример създадохме a символична връзка наречена „button_link“. Това сочи към файл, наречен „./backup/images/button_about.png.“ За да променим груповата собственост на файла, трябва да използваме опцията –dereference. Това ще промени настройките за файла и ще остави символната връзка непроменена.

Нека проверим настройките за символната връзка с помощта на ls -l.

ls -l button_link

Командата за промяна на файла е:

sudo chgrp --dereference devteam button_link

Ще проверим дали символичната връзка е непроменена с помощта на ls и също така ще проверим настройките за собственост на групата за файла.

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

Символичната връзка е непроменена, а собствеността на групата на файла „button_about.png“ е променена.

За да променим груповата собственост на самата символна връзка, трябва да използваме опцията –no-dereference.

Командата за използване е:

sudo chgrp --no-dereference devteam button_link

Ще използваме ls -l, за да проверим дали новата собственост на групата е зададена за символната връзка.

ls -l button-link

Този път засегнатият елемент беше самата символна връзка, а не файлът, към който сочи.

Хубаво и просто

Простото е добро. Това означава, че има по-малко за запомняне и по-малко с което да се бъркате. Това трябва да означава по-малко грешки.