Odśwież dodatkowe członkostwo w grupach bez ponownego logowania?

12

Z mojego zrozumienia, sesja Linuksa buforuje członkostwa w grupach przy logowaniu. Następnie, jeśli zostanie dodane nowe członkostwo w grupie (np. Za pomocą adduser someuser somegroup), użytkownik musi się wylogować i zalogować ponownie, aby móc skorzystać z nowego członkostwa.

Moje pytanie brzmi: czy jest jakiś sposób na odświeżenie członkostwa w grupie w toku, bez konieczności ponownego logowania, wychodzenia z bieżącego procesu lub rozpoczynania nowego?

Avdi
źródło

Odpowiedzi:

9

Możesz rozpocząć nowe logowanie z sesji

$ su - your_login

Nie wpływa na twój proces uruchamiania. Jeśli używasz Xservera, możesz uruchomić xterm i wpisać to polecenie (wpływa tylko na tę sesję terminalową). Jedynym sposobem na utrwalenie jej jest zakończenie sesji i rozpoczęcie jej od nowa

sumar
źródło
Jeśli zezwalasz tylko na uwierzytelnianie klucza publicznego na swoim serwerze, musisz zaimportować tajny klucz?
Cyril Duchon-Doris
5

Nie wydaje mi się Ale możesz użyć tego newgrppolecenia, aby spawnować nową powłokę z nową grupą. To nie jest trwałe.

newgrp superawesomegroupname

Musisz ponownie zalogować użytkowników.

Joseph Kern
źródło
1
+1 działa bez wymagania hasła / uwierzytelnienia w przeciwieństwie dosu
Cyril Duchon-Doris
2

Inni wspominali „ su - $USER” i „ newgrp”, i pomyślałem, że powinienem wspomnieć, że powinieneś także spojrzeć na „ sg”.

Miś
źródło
2

Możesz to zrobić:

exec su -l $USER

To domyślnie odświeża listę grup bez konieczności wychodzenia z terminala.

Arjen P. De Vries
źródło
1

Możesz użyć gpasswddo natychmiastowej zmiany:

gpasswd -a someuser somegroup

Nie ma potrzeby tworzenia nowej powłoki lub ponownego logowania. Następnie sprawdź członkostwo grupy, używając getent:

getent group somegroup
Tombart
źródło
Tworzysz grupę, a następnie wyszukujesz tę grupę. Nie ma to nic wspólnego z omawianym pytaniem - zmiana nie obowiązuje w bieżącej sesji.
Str.
0

Co z tym (chociaż spełnia to tylko wymóg, że nie będziesz musiał ponownie logować się)

exec /bin/bash -l

Flaga -l założy nową powłokę logowania, a exec zastąpi bieżącą powłokę nową. BTW, nie wpisuj błędnie nazwy powłoki :-)

Jednym z problemów z użyciem newgrp i su, jak sugerowano wcześniej, jest utworzenie nowej podpowłoki. Tak, możesz poprzedzić je również poleceniem exec.

mdpc
źródło