2009-08-24 3 views

Odpowiedz

8

newgrp (1)

+0

Jestem członkiem grupy, więc dlaczego pyta mnie o hasło? Nie podoba mi się moje hasło! – Michael

+0

również, jeśli uruchomię "newgrp " jako root (np. Uruchamiając skrypt z newgrp w nim używając sudo), zrzuca mnie do powłoki głównej. – Michael

+0

To nie jest to, do czego należy użyć newgrp. Co stanie się, jeśli zapomnisz użyć programu newgrp poza skryptem? W jaki sposób skrypt obsłuży nową powłokę tworzoną przez newgrp? Odpowiedź @ mark40 jest lepsza. – noel

156

Istnieje kilka sposobów, aby to zrobić:

  1. Można zmienić domyślną grupę wszystkich plików utworzonych w danym katalogu poprzez ustawienie setgid flaga na katalog (chmod g+s _dir_). Nowe pliki w katalogu zostaną utworzone z grupą katalogu (ustawiona przy użyciu chgrp <group> <dir>). Dotyczy to każdego programu , który tworzy pliki w katalogu.

    pamiętać, że jest automagicznie dziedziczone nowych podkatalogów (od Linux 3.10), jednak jeśli podkatalogi były już obecne, ta zmiana nie będą stosowane do nich (użyj -R flagę tego).

  2. Jeśli flaga setgid nie jest ustawiona, wówczas grupa domyślna zostanie ustawiona na bieżący identyfikator grupy procesu tworzenia. Chociaż można to ustawić za pomocą komendy newgrp , która tworzy nową powłokę trudną do użycia w skrypcie powłoki . Jeśli chcesz wykonać konkretne polecenie (lub zestaw poleceń) ze zmienioną grupą, użyj polecenia sg <group> <command>.

    sg nie jest standardowym poleceniem POSIX, ale jest dostępny w systemie Linux.

+5

Tylko mała uwaga. Jeśli spróbujesz uruchomić 'chmod g + s _dir_' na katalogu, który ma grupę y, i uruchamiasz polecenie pod użytkownikiem x, a użytkownik x nie jest członkiem grupy y, to nie zadziała. Będziesz musiał uruchomić go jako root. – LEDfan

Powiązane problemy