Erzwinge das Abmelden eines Benutzers


60

I Als ich mich auf dem Computer als angemeldet rootund eingegeben habe, um whozu sehen, welche Benutzer angemeldet sind, habe ich festgestellt, dass jemand anderes ebenfalls als root angemeldet ist

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)

Wie kann ich einen Root-Benutzer bei pts / 3 zum Abmelden zwingen?


9
Sie müssen ein noch größeres Problem lösen. Deaktivieren Sie direkte Root-Anmeldungen und zwingen Sie Ihre Benutzer, sudo zu verwenden.
Xenoactive 20.11.11

Antworten:


55

Sie beenden eine Sitzung, indem Sie den übergeordneten Prozess beenden, der als Sitzungsleiter bezeichnet wird. Finden Sie heraus, um welchen Prozess es sich handelt:

ps -dN|grep pts/3

10
Und dann beenden Sie diesen Prozess mitkill -9 <processid>
Mithun Sreedharan

5
Sollte kill <pid>gerade ausreichen, oder? Bitte speichern Sie die kill -9s für schlecht verhaltene Prozesse, die nicht auf INT, HUP oder TERM reagieren. Es ist so etwas wie der Unterschied zwischen dem Herunterfahren eines Computers über das Menü des Betriebssystems und dem Ziehen des Steckers am Computer.
TheDudeAbides

26

Um einen Benutzer zu töten und abzumelden, können Sie ein KILL-Signal senden. Geben Sie den folgenden Befehl ein:

# skill -KILL -u vivek

Überprüfen Sie diese Links für weitere Informationen:


6
Was ist, wenn ich als derselbe Benutzer angemeldet bin?
Mithun Sreedharan

Dieser Befehl funktioniert für Superuser. Sie müssen sich als Superuser anmelden. Netzwerkbetriebssysteme befolgen diesen Ansatz aus Sicherheitsgründen. Ich glaube, diese Links sagen dasselbe, um sich als Administrator anzumelden.
Niranjan Singh

es hat mich auch rausgeschmissen sudo su -, obwohl ich root war, aber ich glaube, ich war nicht am Ende. Als ich zurück zum Server ging, war ich der einzige. Ich hatte 4 Instanzen von mir, denke ich würde sagen.
pjammer

5
@Mithun können Sie -t <terminal name>anstelle von verwenden -u.
Melebius

1
Auf dem Cyberciti-Link heißt es jetzt: "WARNUNG! Diese Tools sind veraltet, nicht portierbar und wurden aus historischen Gründen erstellt. Verwenden Sie stattdessen die Befehle killall, pkill und pgrep wie folgt." pkill -KILL -u vivekfunktioniert genauso gut.
EM0

0

Ein bisschen verbessern Fabels Antwort oben:

\# *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*
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.