Komenda chgrp
w systemie Linux zmienia prawa własności grupy do pliku lub katalogu. Dlaczego warto go używać zamiast chown
? Czasami szwajcarski scyzoryk jest świetny, ale kiedy naprawdę potrzebujesz skalpela, wystarczy skalpel.
Kiedy powinieneś używać chgrp
Komenda chgrp
służy do zmiany prawa własności do pliku lub katalogu w grupie. Polecenie chown
umożliwia zmianę właściciela użytkownika i właściciela grupy pliku lub katalogu. Dlaczego więc potrzebujesz lub używasz chgrp
?
Po pierwsze, jest to łatwe. Używanie chown
do zmiany tylko ustawień właściciela grupy jest trochę sprzeczne z intuicją. Musisz bardzo uważać na składnię, która zależy od prawidłowego umieszczenia dwukropka „:”. Zgub to, a nie dokonasz zmiany, o której myślałeś, że jesteś.
Składnia chgrp
jest znacznie prostsza. Ma również zgrabną funkcję, która w prosty sposób informuje, jakie zmiany właśnie wprowadził.
Jest to specjalnie stworzone i dedykowane narzędzie do wykonywanego zadania. chgrp
całkowicie obejmuje uniksową zasadę projektowania polegającą na robieniu jednej rzeczy i robieniu jej dobrze. Zobaczmy, co ma do zaoferowania.
Zmiana prawa własności pliku do grupy
Zmiana prawa własności do pliku w grupie jest bardzo prosta. Musisz używać sudo
z chgrp
. Grupy nie są własnością użytkowników, więc to, czy plik lub katalog jest przenoszony z jednej grupy do drugiej, nie należy do decyzji przeciętnego użytkownika. To praca dla kogoś z uprawnieniami roota.
Zamierzamy zmienić prawa własności grupy do pliku źródłowego C o nazwie „gc.c” na grupę „devteam”.
Aktualne wartości własności możemy sprawdzić za pomocą ls
z opcją -l
(długa lista).
ls -l
To jest polecenie zmiany właściciela grupy. Wpisz sudo
, spację, chgrp
, spację, nazwę grupy, którą zamierzamy ustawić jako właściciela grupy, spację i nazwę pliku.
sudo chgrp devteam gc.c
Sprawdzimy, czy zmiana została dokonana, ponownie używając ls -l
.
ls -l
Widzimy, że własność grupy została zmieniona z „dave” na „devteam”.
Aby zmienić własność grupy dla zbioru wszystkich plików naraz, możesz użyć symboli wieloznacznych. Zmieńmy własność grupy dla wszystkich plików źródłowych C w bieżącym katalogu. Użyjemy tego polecenia:
sudo chgrp devteam *.c
Możemy sprawdzić, czy zmiana została wprowadzona zgodnie z oczekiwaniami, używając ls -l
.
ls -l
Wszystkie pliki źródłowe C w tym katalogu zostały zmienione tak, że ich własność grupowa to „devteam”.
Używając opcji -c
(zmiany), chgrp
wyświetli listę zmian, które wprowadził w każdym pliku. Załóżmy, że popełniliśmy błąd i chcieliśmy, aby dla plików źródłowych C ustawiono własność grupy na „researchlab”. Poprawmy to teraz. Użyjemy tego polecenia:
sudo chgrp -c researchlab *.c
Zmiany są wprowadzane za nas i każda z nich jest wymieniana na bieżąco, co pozwala nam zweryfikować, czy to, co zmieniliśmy, jest poprawne.
Zmiana prawa własności do katalogu
Zmiana prawa własności do katalogu w grupie jest równie prosta. Możemy użyć tego polecenia, aby zmienić prawo własności do katalogu „kopia zapasowa”.
sudo chgrp -c devteam ./backup
Aby było jasne, to polecenie zmieni prawa własności grupy do samego katalogu, a nie do plików w katalogu. Użyjemy ls -l
z opcją -d
(katalog), aby sprawdzić, czy tak jest.
ls -l -d
Własność grupowa samego katalogu została zmieniona na „devteam”.
Opcja rekurencyjna
Jeśli chcemy zmienić prawa własności grupowej do plików i katalogów przechowywanych w katalogu, możemy użyć opcji -R
(rekurencyjna). Spowoduje to, że chgrp
zmieni prawa własności grupowej dla wszystkich plików i podkatalogów poniżej katalogu docelowego.
Spróbujmy tego z katalogiem „backup”. Oto polecenie:
sudo chgrp -R devteam ./backup
Przejrzymy pliki w jednym z zagnieżdżonych podkatalogów za pomocą polecenia ls
, a także sprawdzimy ustawienia jednego z zagnieżdżonych podkatalogów za pomocą ls
.
ls -l ./backup/images
ls -l -d ./backup/images
Widzimy, że własność grupy została zmieniona zarówno dla plików w zagnieżdżonych podkatalogach, jak i dla zagnieżdżonych podkatalogów.
Korzystanie z pliku odniesienia
Do tej pory wyraźnie podaliśmy chgrp
nazwę grupy, której chcemy użyć. Możemy również użyć chgrp
w sposób, który mówi: „ustaw własność grupy tego pliku na tę samą własność grupy co ten plik”.
Ustawmy własność grupy „gc.h” tak, aby była taka sama jak „gc.c”.
Aktualne ustawienia „gc.c” i „gc.h” możemy sprawdzić za pomocą ls
.
ls -l gc.c
ls -l gc.h
Opcją, której potrzebujemy, jest opcja --reference
. Własność grupy jest kopiowana z pliku referencyjnego do innego pliku. Uważaj, aby pliki były prawidłowe.
sudo chgrp --reference=gc.c gc.h
Użyjemy ls
, aby sprawdzić, czy ustawienia zostały przeniesione do „gc.h”.
ls -l gc.h
Plik „gc.h” ma teraz takie same prawa własności do grupy jak „gc.c”.
Używanie chgrp z dowiązaniami symbolicznymi
Możemy użyć chgrp
, aby zmienić grupę własności dowiązń symbolicznych lub pliku wskazywanego przez dowiązanie symboliczne.
W tym przykładzie utworzyliśmy plik dowiązanie symboliczne o nazwie „button_link”, które wskazuje na plik o nazwie „./backup/images/button_about.png”. Aby zmienić grupę własności pliku, musimy użyć opcji --dereference
. Spowoduje to zmianę ustawień pliku i pozostawienie dowiązania symbolicznego bez zmian.
Sprawdźmy ustawienia dowiązania symbolicznego za pomocą ls -l
.
ls -l button_link
Polecenie zmiany pliku to:
sudo chgrp --dereference devteam button_link
Sprawdzimy, czy dowiązanie symboliczne jest niezmienione za pomocą ls
, a także sprawdzimy ustawienia własności grupy dla pliku.
ls -l button_link
ls -l ./backup/images/button_about.png
Dowiązanie symboliczne pozostaje niezmienione, a plik „button_about.png” ma zmodyfikowaną własność grupy.
Aby zmienić własność grupy samego dowiązania symbolicznego, musimy użyć opcji --no-dereference
.
Polecenie do użycia to:
sudo chgrp --no-dereference devteam button_link
Użyjemy ls -l
, aby sprawdzić, czy dla dowiązania symbolicznego ustawiono nową własność grupy.
ls -l button_link
Tym razem elementem, którego dotyczy problem, było samo dowiązanie symboliczne, a nie plik, na który wskazuje.
Ładnie i prosto
Proste jest dobre. Oznacza to, że jest mniej rzeczy do zapamiętania i mniej rzeczy, z którymi można się pomylić. To powinno oznaczać mniej błędów.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.