chgrp (od change group) zmienia grupę właścicielską plików i katalogów w systemach uniksowych. Każdy plik ma właściciela i grupę — chown zajmuje się tym pierwszym, a chgrp tym drugim. Przydaje się, gdy chcesz, żeby kilka osób (np. zespół deweloperów albo proces serwera WWW) miało wspólny dostęp do tych samych plików przez przynależność do jednej grupy. Grupę podajesz po nazwie (np. www-data) albo numerycznym GID-zie. Pamiętaj: zwykły użytkownik może zmienić grupę pliku tylko na taką, do której sam należy — resztę załatwia root.
Składnia i najważniejsze opcje
Podstawowa forma to: chgrp [OPCJE] GRUPA PLIK...
-R,--recursive— działa rekurencyjnie na całych katalogach i ich zawartości.-h,--no-dereference— zmienia grupę samego dowiązania symbolicznego, a nie pliku, na który ono wskazuje.--dereference— działa na pliku docelowym dowiązania (to zachowanie domyślne).--reference=RFILE— ustawia grupę taką samą, jak ma plik RFILE, zamiast podawać ją ręcznie.-v,--verbose— wypisuje komunikat dla każdego przetwarzanego pliku.-c,--changes— jak-v, ale raportuje tylko pliki, które faktycznie zmieniły grupę.-f,--silent— wycisza większość komunikatów o błędach.-H,-L,-P— sterują obsługą dowiązań przy-R(czy schodzić w dół przez symlinki do katalogów; liczy się tylko ostatnia podana).
Przykłady użycia
chgrp developers plik.txt— ustawia grupędevelopersna pojedynczym pliku.chgrp -R www-data /var/www/strona— rekurencyjnie nadaje grupęwww-datacałemu drzewu katalogu strony (klasyk przy wdrażaniu aplikacji webowej).chgrp -v audyt raport.csv log.txt— zmienia grupę naaudytdla kilku plików naraz i wypisuje, co zrobił.chgrp --reference=wzorzec.conf nowy.conf— kopiuje grupę z plikuwzorzec.confnanowy.conf, bez sprawdzania jej nazwy.chgrp -h staff dowiazanie— zmienia grupę samego linku symbolicznego zamiast celu.
Częste błędy i pułapki
Najczęstsza wpadka to „Operation not permitted” — próbujesz przypisać grupę, do której nie należysz. Sprawdź swoje grupy poleceniem groups, a operacje na cudzych plikach rób przez sudo. Druga klasyka: chgrp -R na symlinkach. Domyślnie chgrp podąża za dowiązaniami do plików, ale przy -R to opcje -H/-L/-P decydują, czy wejść w katalogi wskazywane przez symlinki — łatwo nieświadomie zmienić grupę poza zamierzonym drzewem. Uważaj też z rekurencją po / — chgrp ma domyślnie włączone --preserve-root, ale i tak nie odpalaj go po omacku na katalogach systemowych. Drobiazg międzysystemowy: na macOS/BSD chgrp ma uboższy zestaw długich opcji niż wersja GNU z Linuksa — nie licz tam na --reference.
Powiązane komendy: chown (zmiana właściciela, potrafi też grupę przez zapis user:group), chmod (uprawnienia), groups i id (sprawdzanie grup użytkownika), ls -l (podgląd właściciela i grupy plików).