Jeśli chown może zmieniać grupy, dlaczego utworzono chgrp?

23

Jest więc coś, chownco pozwala zmienić właściciela i grupę plików i / lub katalogów. Ale są też takie, chgrpktóre tylko zmieniają grupę. Dlaczego został chgrpstworzony? Czy to nie jest zbędne?

dayuloli
źródło
Więcej informacji można znaleźć tutaj. serverfault.com/questions/462174/…
Ramesh

Odpowiedzi:

36

chownpoczątkowo nie można ustawić grupy. Później niektóre implementacje dodały go jako chown user.group, niektóre chown user:groupdo czasu, aż ostatecznie zostały ustandaryzowane (moje podkreślenie):

Metoda 4.3 BSD określająca zarówno właściciela, jak i grupę została uwzględniona w tym tomie POSIX.1-2008, ponieważ:

Są przypadki, w których pożądany warunek końcowy nie może zostać osiągnięty za pomocą narzędzi chgrp i chown (które tylko zmieniły identyfikator użytkownika). (Jeśli bieżący właściciel nie jest członkiem żądanej grupy, a żądany właściciel nie jest członkiem bieżącej grupy, funkcja chown () może się nie powieść, chyba że zarówno właściciel, jak i grupa zostaną zmienione w tym samym czasie).

Nawet jeśli można je zmienić niezależnie, w przypadkach, gdy oba są zmieniane, istnieje 100% kara za wydajność spowodowana zmuszeniem do wywołania obu narzędzi.

Nawet teraz chown :groupzmiana grupy nie jest przenośna ani standardowa.

chown user:(aby przypisać podstawową grupę userw bazie danych użytkowników) również nie jest standardem.

Stéphane Chazelas
źródło
2
@dayuloli, dzięki za edycję, ale nie zawarłem tej części specyfikacji, ponieważ jej nie rozumiem
Stéphane Chazelas
Dobre pytanie! Pozytywne!
dayuloli
Miło to widzieć: grupa i użytkownik: zostały wymienione jako niestandardowe. Wiele osób tutaj sprawdza tylko to, co robi ich lokalny dostawca, co nie jest pomocne w ogólnym portalu UNIX.
schily