Forzar el cierre de sesión de un usuario


60

I Cuando inicié sesión en la máquina como rooty escribí whopara ver qué usuarios están conectados, encontré a alguien más que también inició sesión como 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)

¿Cómo puedo forzar a un usuario root en pts / 3 a cerrar sesión?


99
Tienes un problema aún mayor que resolver. Deshabilite los inicios de sesión raíz directos y obligue a sus usuarios a usar sudo.
Xenoactive

Respuestas:


55

Termina una sesión eliminando su proceso padre, llamado líder de la sesión. Averigüe con qué proceso es:

ps -dN|grep pts/3

10
Y luego matar a ese proceso utilizandokill -9 <processid>
Mithun Sreedharan

55
Solo kill <pid>debería ser suficiente, ¿verdad? Guarde los kill -9mensajes de correo electrónico para procesos que se comporten mal y no respondan a INT, HUP o TERM; es algo así como la diferencia entre apagar una computadora usando el sistema de menú del sistema operativo o desconectar la computadora.
TheDudeAbides

26

Para matar y cerrar sesión en un usuario, puede enviar la señal KILL. Escriba el siguiente comando:

# skill -KILL -u vivek

Consulte estos enlaces para obtener más información:


66
¿Qué pasa si estoy conectado como el mismo usuario?
Mithun Sreedharan

estas obras de comando para superusuario .. debe iniciar sesión como superusuario .. sistemas operativos de red siguen este enfoque para la seguridad .. Creo que esos enlaces también están diciendo misma al inicio de sesión como admin ..
Niranjan Singh

también me echó sudo su -, aunque era root, pero supongo que al final no estaba. volver al servidor me mostró como el único. Tuve 4 instancias de mí mismo, supongo que diría.
pjammer

55
@Mithun Puede usar en -t <terminal name>lugar de -u.
Melebius

1
El enlace de cyberciti ahora dice "¡ADVERTENCIA! Estas herramientas son obsoletas, no se pueden portar y está aquí por razones históricas. Considere usar los comandos killall, pkill y pgrep en su lugar de la siguiente manera". pkill -KILL -u vivekfunciona igual de bien
EM0

0

Mejorando un poco la respuesta de Fabel arriba:

\# *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*
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.