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?

Mithun Sreedharan
fuente
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
Fabel
fuente
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:

Niranjan Singh
fuente
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*
colisión
fuente