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.