Wymuś wylogowanie użytkownika

60

I Gdy zalogowałem się na maszynie rooti napisałem, whoaby zobaczyć, którzy użytkownicy są zalogowani, znalazłem kogoś, kto też jest zalogowany jako root

devuser   pts/0        2011-11-18 09:55 (xxx.xxx.xxx.xxx)
root      pts/1        2011-11-18 09:56 (xxx.xxx.xxx.xxx)
testuser  pts/2        2011-11-18 14:54 (xxx.xxx.xxx.xxx)
root      pts/3        2011-11-18 14:55 (xxx.xxx.xxx.xxx)

Jak mogę wymusić wylogowanie użytkownika root w pts / 3?

Mithun Sreedharan
źródło
9
Masz jeszcze większy problem do rozwiązania. Wyłącz bezpośrednie logowanie roota i zmuś użytkowników do korzystania z sudo.
Xenoactive

Odpowiedzi:

55

Kończymy sesję, zabijając jej proces nadrzędny, zwany liderem sesji. Dowiedz się, który to proces:

ps -dN|grep pts/3
Fabel
źródło
10
A następnie zabij ten proces za pomocąkill -9 <processid>
Mithun Sreedharan,
5
Po prostu kill <pid>powinno wystarczyć, prawda? Proszę zachować kill -9s dla źle źle zachowanych procesów, które nie reagują na INT, HUP lub TERM; przypomina to różnicę między wyłączaniem komputera za pomocą systemu menu systemu operacyjnego a wyciąganiem wtyczki z komputera.
TheDudeAbides
26

Aby zabić i wylogować użytkownika, możesz wysłać sygnał KILL. Wpisz następujące polecenie:

# skill -KILL -u vivek

Sprawdź te linki, aby uzyskać więcej informacji:

Niranjan Singh
źródło
6
co jeśli jestem zalogowany jako ten sam użytkownik?
Mithun Sreedharan,
ta komenda działa dla superużytkownika .. musisz zalogować się jako superużytkownik .. sieciowe systemy operacyjne stosują to podejście do bezpieczeństwa .. myślę, że te linki również mówią to samo do logowania jako admin ..
Niranjan Singh
mnie też wyrzuciło sudo su -, chociaż byłem rootem, ale chyba nie byłem w końcu. powrót do serwera pokazał mnie jako jedynego. Miałem 4 wystąpienia o sobie, tak mi się wydaje.
pjammer
5
@Mithun Możesz użyć -t <terminal name>zamiast -u.
Melebius
1
Łącze cyberciti mówi teraz: „OSTRZEŻENIE! Narzędzia te są przestarzałe, nie można ich przenosić i są tutaj z przyczyn historycznych. Zamiast tego rozważ użycie poleceń killall, pkill i pgrep w następujący sposób”. pkill -KILL -u vivekdziała równie dobrze.
EM0,
0

Poprawiam nieco odpowiedź Fabela powyżej:

\# *for pid in $(for ptsn in $(w | grep **user_name** | grep pts | awk '{print $2}'); do ps -dN | grep "$ptsn " | awk '{print $1}' ; done); do kill -9 $pid; done*
collisio
źródło