Metody płatności Abuse

Polecenie CHGRP LINUX

14.12.2021, 10:30

Często podczas korzystania z Linuksa użytkownicy rzadko myślą o tym, kto jest właścicielem pliku. Kiedy jednak przychodzi do uruchomienia serwera, sytuacja się zmienia. Aby zwiększyć bezpieczeństwo, serwer otrzymuje własnego użytkownika. Nierzadko zdarza się, że serwery korzystają z tej samej grupy, np. www-data. Następnie zobaczmy, jak ta funkcja działa z plikami i katalogami. Zwrócimy szczególną uwagę na dowiązania symboliczne, ponieważ mogą one powodować problemy podczas korzystania z niezabezpieczonych ustawień.

Co to oznacza

Standard uprawnień do plików przyszedł do Linuksa z Uniksa. Tak więc każdy obiekt posiada użytkownika, grupę, a oprócz tego opisuje uprawnieniainnych użytkowników(other). Uprawnienia składają się z trzech elementów: odczyt, zapis, wykonanie. Polecenie umask jest używane do zmiany uprawnień, ale polecenia chown są używane do bezpośredniej zmiany właściciela i grupy. Polecenie ls może być używane do przeglądania bieżących uprawnień.

Składnia i opcje

Ogólny widok polecenia chgrp:

$ chgrp [options] new_group file_name

Lista typowych opcji dla polecenia chgrp:

  1. -h - praca bezpośrednio z samymi dowiązaniami symbolicznymi;
  2. --dereference - praca z plikami, a nie samymi dowiązaniami symbolicznymi. Używane domyślnie;
  3. -R - rekurencyjne przetwarzanie katalogu z całą jego zawartością;
  4. -H - podąża za dowiązaniem symbolicznym i zmienia atrybuty pliku/katalogu. Używane w połączeniu z parametrem -R;
  5. -L - podąża za dowiązaniem symbolicznym i kontynuuje przetwarzanie rekurencyjne. Używane w połączeniu z parametrem -R;
  6. -P - po napotkaniu dowiązania symbolicznego przetwarza tylko je. Używane razem z parametrem -R, jest wartością domyślną;
  7. --reference=nazwa_pliku - użyj przykładowej grupy;
  8. -c - wyjście zmienia się tylko podczas przetwarzania;
  9. -v - wypisuje informacje o każdym przetworzonym obiekcie.

Użycie polecenia

Najprostszy przykład użycia polecenia chgrp. Poniższy zmienia cały obiekt www-data dla pliku w bieżącym folderze:

$ sudo chgrp www-data file.txt

A ten zmienia grupę na www-data dla folderu folder:

 $ sudo chgrp www-data folder

Polecenie działa w bardzo przewidywalny sposób, zmieniając ich grupę. Obiekty w folderze pozostają niezmienione. Jeśli obsługiwane są dowiązania symboliczne, ich atrybuty pozostają niezmienione, ale obiekt otrzymuje nową grupę. To zachowanie jest podobne do obsługi parametru --dereference.

Na przykład te polecenia zastosowane do dowiązań symbolicznych będą działać tak, jak pokazano na zrzucie ekranu:

$ sudo chgrp www-data sym_file.txt

Przyjrzyjmy się, jak działałby parametr -h zmieniający atrybuty dowiązania symbolicznego:

$ sudo chgrp -h www-data sym_file

Grupa została ustawiona nie tylko dla katalogu, ale także dla wszystkich plików w nim zawartych. Zauważ, że zachowanie uległo zmianie, teraz podczas przetwarzania dowiązania symbolicznego atrybuty są ustawiane dla samego dowiązania, a nie obiektu.

Aby zobaczyć różnicę między parametrami -H i -L, przyjrzyjmy się jeszcze kilku przykładom. Przypomnijmy, że muszą one być używane razem z -R:

$ sudo chgrp -RH www-data folder

Przy użyciu -H zachowanie podczas przetwarzania dowiązań symbolicznych uległo zmianie, są one teraz obsługiwane tak, jakby funkcje były wykonywane osobno. Atrybuty odwołań nie zmieniają się, atrybuty samych obiektów tak, a przetwarzanie rekurencyjne zatrzymuje się po przełączeniu do katalogu.

$ sudo chgrp -RL www-data folder

Wykonuje jedną funkcję - zmienia grupę plików i katalogów.

Podczas przetwarzania dowiązań symbolicznych należy zachować szczególną ostrożność, aby nie uszkodzić systemu.