Czy po dodaniu użytkownika do nowej grupy wymagany jest restart?

26

Na serwerze Ubuntu zauważyłem więcej niż jeden raz, że po dodaniu użytkownika do grupy, użytkownik ten nie ma uprawnień grupy, dopóki nie zrestartuję systemu. Na przykład:

Użytkownik „hudson” potrzebuje uprawnień do odczytu katalogu „root: shadow / etc / shadow”. Więc dodaję hudsona do grupy shadow. Hudson nadal nie umie czytać. Więc „zamykam sudo -h -r teraz”, a kiedy system ponownie się pojawia, użytkownik Hudson może czytać.

Czy wymagane jest ponowne uruchomienie komputera lub czy istnieje lepszy sposób na uzyskanie uprawnień po dodaniu użytkownika do grupy?

Michael Prescott
źródło
na przyszłość, poniżej dodałem rzeczywiste rozwiązanie. Byłem zaskoczony, że to był problem. Mam nadzieję, że to pomaga.
TryTryAgain

Odpowiedzi:

25

Szukałem rozwiązania, natknąłem się na ten post, a potem znalazłem!

Myślałem, że rzeczywiście zaoferuję rozwiązanie, aby inni mogli skorzystać. Logowanie i wylogowanie to 1995.

Pochodzi z:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

Jeśli więc chcesz uzyskać uprawnienia dla cdromgrupy, do której właśnie dodałeś użytkownika:

newgrp cdrom 

na przykład

Tak więc kroki byłyby następujące:

#adduser my_user cdrom

i wtedy

$newgrp cdrom

Potwierdziłem, że to działa.

Prosta $groupskontrola z interfejsu CLI pokazuje, że użytkownik jest w grupie. I działa szybkie wykonanie z potrzebnymi uprawnieniami z tej grupy.

Nie musisz zabijać okien, logować się i wylogowywać! Mam nadzieję, że pomaga innym!

Informacje dodatkowe (na podstawie pomocnego komentarza jytou): „[To] rozwiązanie będzie działać tylko dla aktualnie otwartej powłoki. Jeśli masz otwartą inną powłokę, musisz użyć tego samego polecenia, aby uwzględnić zmiany.”

TryTryAgain
źródło
1
To świetnie, to naprawdę działa !!! : D
dadexix86
3
Zauważ, że rozwiązanie TryTryAgain będzie działać tylko dla aktualnie otwartej powłoki. Jeśli masz otwartą kolejną powłokę, musisz użyć tego samego polecenia, aby uwzględnić zmiany.
jytou
W każdym razie, aby to zrobić podczas trwającej sesji X?
artfulrobot
@artfulrobot przepraszam, nie jestem do końca pewien, co masz na myśli. Możesz otworzyć nowe pytanie i odnieść się do tego postu i rozwiązania, aby najlepiej pomóc.
TryTryAgain
19

Podczas dodawania użytkownika do nowej grupy, użytkownik musi się wylogować i zalogować ponownie, aby zadziałało. Ponowne uruchomienie spowoduje to, ale nie powinno być wymagane.

Scott Pack
źródło
Jak wylogować użytkownika utworzonego przez aptitude podczas instalowania pakietu?
Michael Prescott,
Jaki pakiet tworzy hudsonużytkownik?
womble
Jak odpowiedział Justin, spróbuj zatrzymać i uruchomić usługę.
Scott Pack
Tym się właśnie zajmuję. Po prostu wyloguj się i zaloguj ponownie.
Trent Scott,
Na szczęście nie trzeba się wylogowywać i ponownie logować. Poniżej zaproponowałem działające rozwiązanie. Przetestowane i SZCZĘŚLIWE!
TryTryAgain
8

Dodanie użytkownika do grupy nie wpływa na aktualnie zalogowanych użytkowników.

W przypadku demona musisz go zrestartować, aby zastosować nowe grupy.

Ponadto ponowne uruchomienie demona przy użyciu opcji w samym demonie nie będzie działać, ponieważ odziedziczy ono bieżące środowisko.

Najłatwiejszym sposobem na uruchomienie go jest całkowite zatrzymanie demona i uruchomienie go ponownie, jak w ..

/etc/init.d/foo stop ; /etc/init.d/foo start
Justin
źródło
4

to znacznie łatwiejsze, możesz sprawdzić swój obecny poziom dostępu, wpisując:

id

aby ponownie załadować grupy, potrzebujesz:

su - $USER

po tym ponownie sprawdź poziom dostępu:

id

i zobaczysz, że nowa grupa jest teraz aktywna.

wikrie
źródło
1

Istnieje inny tryb awarii, który również należy rozwiązać tutaj.

Jeśli administrator zaktualizował się, /etc/groupale nie zaktualizował /etc/gshadow(w systemach, które mają tę konfigurację), wylogowanie i ponowne zalogowanie nie spowoduje przypisania cię do nowej grupy.

Złudzenia, groupspokaże rzeczywistą, aktualną sytuację, natomiast idbędzie niepoprawnie drukować wyjście, które wskazuje, że właściwie członkiem grupy.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

Nie mogę użyć, newgrpponieważ prosi o hasło i nie mam hasła, tylko uwierzytelnianie klucza publicznego SSH.

Rozwiązaniem byłoby, aby administrator cofnął ręczną edycję, /etc/groupsa następnie zrobiłby to ponownie za pomocą sudo gpasswd -a tripleee adm; lub alternatywnie, aby użyć grpconvdo scalenia zmian (które odebrałem z /server//a/389719/98333 )

potrójny
źródło
W rzeczywistości okazuje się, że prawdziwym problemem było to, że ponownie korzystałem z sesji master SSH . Odłączenie tego przez usunięcie gniazda ControlPath i ponowne zalogowanie rozwiązało problem.
tripleee