Permitir acesso ao console do Linux

8

Suponha que alguém esteja executando uma SSHsessão na GNU/Linuxcaixa de um cliente e ele peça para você ver "o que está fazendo". Como você pode permitir que essa outra parte veja o que está acontecendo em sua sessão?

Drt
fonte

Respostas:

12

Você pode tentar usar o comando " tela ". Isso permitirá que você execute uma sessão multiusuário que dois usuários possam conectar e compartilhar. Primeiro você precisará definir o bit suid. A tela vem com a impressora desligada e é necessário para o modo multiusuário:

sudo chmod +s /usr/bin/screen
sudo chmod 755 /var/run/screen

O primeiro usuário se conecta, executando

screen -S shared

O "-S" fornece à sessão um nome fácil de usar. Para permitir o acesso multiusuário, use "CTRL + A" para executar comandos na tela :

CTRL+A
:multiuser on
:acladd otheruser

Quando outro usuário se conecta através do ssh, ele só precisa executar

screen -x firstuser/shared

para participar da sessão

katriel
fonte
2
Se uma das partes puder usar su/sudopara se tornar o outro usuário, você não precisará mexer no setuid ou nas permissões. Basta usar su para que ambas as partes estejam usando a mesma conta. O primeiro usuário é executado screene, em seguida, é executado screen -x.
Zoredache
Não está explicitamente indicado na resposta, mas o segundo usuário pode apenas ver o que está sendo executado na sessão da tela; ou seja, o primeiro usuário deve estar executando a tela antes de fazer a parte "interessante". Além disso, se o tamanho do terminal não corresponder, a experiência do segundo usuário pode ser ... interessante.
David Mackintosh
@ Zoredache: de que maneira você pode ter problemas com permissões tty
ptman
2

Funcionou como um encanto.

Também recebi uma dica offline de um cara com quem conversei propondo uma solução alternativa:

o usuário que deseja compartilhar usa "w" para ver onde o outro cara está trabalhando ...

# w
 16:27:10 up 30 days,  8:37,  3 users,  load average: 0,99, 0,94, 0,89
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                26Apr10  9days  0.04s  0.01s login -- root
root     pts/0    192.168.2.25     15:31   54:29   0.04s  0.00s script
root     pts/1    192.168.2.235    16:21    3:29   0.05s  0.05s -bash

agora que estávamos agora, o outro cara está trabalhando, emitimos o seguinte:

# script | tee /dev/pts/1 

Este método tem desvantagens ao proposto pelo katriel, pois é apenas uma maneira e, se você esquecer de usar exit para interromper a conexão, os outros pontos continuarão recebendo dados, mesmo que o usuário efetue logout, sendo uma ameaça potencial à segurança. Mas achei que valia a pena mencionar.

De qualquer forma, graças ao Katriel e aos outros.

ÜMineiro
fonte
1

Basta executar um servidor VNC em sua estação de trabalho e deixá-lo se conectar a ele. Barato e fácil :)

apenwarr
fonte
O VNC é bom para sessões X, mas não para uma sessão de console.
Cristian Ciupitu 5/05
Se o seu cliente ssh for iniciado a partir de uma sessão X, não há problema.
Apenwarr
1

Eu tenho um pequeno projeto de código aberto que (espero) preenche perfeitamente essa necessidade: Termbeamer .

Permite iniciar uma sessão do terminal e enviá-la para uma ou mais pessoas pela Internet. Ele funciona por trás de firewalls e NAT e tem uma opção de controle remoto, se você quiser deixar a outra pessoa "dirigir" - boa para a programação em pares.

Benji York
fonte
0

O Apenwarr tem uma boa sugestão, mas recentemente usei o TeamViewer para esse fim. É semelhante ao VNC, mas requer instalação ZERO, nas duas extremidades. Nenhuma instalação do servidor, nenhuma instalação do cliente é necessária. Ele ainda faz travessia de NAT sem configuração ... algo que o VNC não pode fazer.

http://teamviewer.com/

Experimente, você vai se apaixonar.

fsckin
fonte
Além disso, custa um zilhão de dólares.
Apenwarr
Também é executado sob vinho que corre sob o X.
Wranorn