Uma sessão de usuário ativa pode ser “assumida” no Linux?

2

Fora do uso de algo como screen , é possível "assumir" uma sessão de usuário ativa no Linux / UNIX?

Por exemplo, eu ssh para o meu servidor em casa. Então eu ssh para formar o trabalho. Eu quero matar a sessão gerada em casa e "dominar" todos os processos em execução.

warren@home> ssh warren@myserver
warren@myserver> top

...

warren@work> ssh warren@myserver
warren@myserver> <grab-other-session-of-mine>

Após o comando / ferramenta <grab-other-session-of-mine> , a sessão warren@home ssh deve ser fechada.

Isso é possível?

    
por warren 28.07.2010 / 17:40

2 respostas

3

Até onde eu sei, isso não é possível. O que há de errado com a tela ou equivalentes?

Os processos da sua sessão estão vinculados ao seu processo tty e pai atual, alterá-los levaria a vários problemas desagradáveis, portanto, seria necessária uma camada de abstração que fornecesse aos seus processos de trabalho um pai e um tty persistentes. Isto é o que tela e amigos fazem; não usar isso exigiria colocar o recurso no próprio sshd.

Veja Use a tela GNU como login "shell" para usar a tela como um shell de login, que elimina a necessidade de pensar em executá-lo.

    
por 28.07.2010 / 17:58
1

Primeiro: sim. Você pode fazer isso se e somente se você tiver registrado a sessão TCP (não tenho certeza de quanto isso é necessário, mas você precisa ter acesso à captura de pacotes), ter as ferramentas e a experiência certas, ter controle total dos pacotes sendo gerados em uma máquina entre o cliente e o servidor e ter acesso à chave privada do servidor. Você pode assumir a conexão TCP, representar o cliente de origem e começar a transmitir e receber dados na conexão existente.

Mas isso seria bobo e muito mais difícil do que vale a pena, então, praticamente, não, você não pode fazer isso sem usar uma ferramenta como a tela.

    
por 29.07.2010 / 03:51