Forza il logout di un utente


60

I Quando ho effettuato l'accesso alla macchina come roote digitato whoper vedere quali utenti sono connessi, ho trovato qualcun altro che ha effettuato l'accesso come 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)

Come posso forzare un utente root su pts / 3 a disconnettersi?


9
Hai un problema ancora più grande da risolvere. Disabilita gli accessi root diretti e imponi agli utenti di usare sudo.
Xenoactive

Risposte:


55

Si termina una sessione uccidendo il relativo processo genitore, chiamato leader della sessione. Scopri quale processo è con:

ps -dN|grep pts/3

10
E poi uccidi quel processo usandokill -9 <processid>
Mithun Sreedharan il

5
Basta kill <pid>dovrebbe essere sufficiente, giusto? Conservare kill -9i messaggi di posta elettronica per processi che si comportano in modo errato e che non rispondono a INT, HUP o TERM; è un po 'come la differenza tra lo spegnimento di un computer utilizzando il sistema di menu del sistema operativo rispetto a staccare la spina sul computer.
TheDudeAbides,

26

Per uccidere e disconnettere un utente, è possibile inviare il segnale KILL. Digita il seguente comando:

# skill -KILL -u vivek

Controlla questi collegamenti per ulteriori informazioni:


6
cosa succede se ho effettuato l'accesso con lo stesso utente?
Mithun Sreedharan,

questi comandi funzionano per super user .. devi accedere come super user .. i sistemi operativi di rete seguono questo approccio per la sicurezza .. penso che quei link stiano dicendo lo stesso per accedere come admin ..
Niranjan Singh

mi ha espulso sudo su -anch'io, anche se ero root, ma immagino che alla fine non lo fossi . tornare nel server mi ha mostrato come l'unico. ho avuto 4 casi di me stesso, immagino direi.
Pjammer,

5
@Mithun Puoi usare -t <terminal name>invece di -u.
Melebio

1
Il link cyberciti ora dice "ATTENZIONE! Questi strumenti sono obsoleti, non portabili ed è qui per motivi storici. Prendi invece in considerazione i comandi killall, pkill e pgrep come segue." pkill -KILL -u vivekfunziona altrettanto bene.
EM0

0

Migliorare un po 'la risposta di Fabel sopra:

\# *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*
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.