Fuera de usar algo como screen
, ¿es posible "asumir" una sesión de usuario activa en Linux / UNIX?
Por ejemplo, ssh a mi servidor desde casa. Entonces ssh para que funcione. Quiero eliminar la sesión generada en casa y "asumir" todos los procesos que se estaban ejecutando.
warren@home> ssh warren@myserver
warren@myserver> top
...
warren@work> ssh warren@myserver
warren@myserver> <grab-other-session-of-mine>
Después de la <grab-other-session-of-mine>
comando / herramienta, el warren@home
ssh sesión debe estar cerrada.
es posible?
linux
gnu-screen
session
warren
fuente
fuente
screen
? Eso te permite hacer exactamente lo que quieres aquí.Respuestas:
Por lo que sé, esto no es posible. ¿Qué pasa con la pantalla o equivalentes?
Los procesos de su sesión están vinculados a su proceso actual de tty y padre, el cambio de estos podría llevar a una serie de problemas desagradables, por lo que requeriría una capa de abstracción que proporcione a sus procesos de trabajo un tty y padre persistentes. Esto es lo que hacen la pantalla y los amigos; no usarlos requeriría poner la función en el propio sshd.
Ver Usar la pantalla GNU como inicio de sesión "shell" para usar la pantalla como shell de inicio de sesión, lo que elimina la necesidad de pensar para ejecutarlo.
fuente
Primero: si Puede hacer esto si y solo si ha grabado la sesión TCP (no está seguro de cuánto de esto es necesario, pero necesita tener acceso a la captura de paquetes), tener las herramientas y la experiencia adecuadas, tener el control total de los paquetes que se generan en una máquina entre el cliente y el servidor, y tener acceso a la clave privada del servidor. Posiblemente podría asumir la conexión TCP, hacerse pasar por el cliente de origen y comenzar a transmitir y recibir datos sobre la conexión existente.
Pero eso sería una tontería y mucho más difícil de lo que vale, por lo que prácticamente no, no se puede hacer sin usar una herramienta como la pantalla.
fuente