Permitir acceso a la consola de Linux

8

Supongamos que uno está ejecutando una SSHsesión en una GNU/Linuxcaja de un cliente y le pide que vea "lo que está haciendo". ¿Cómo puede permitir que esta otra parte vea lo que sucede en su sesión?

Drt
fuente

Respuestas:

12

Puede intentar usar el comando " pantalla ". Esto le permitirá ejecutar una sesión multiusuario que 2 usuarios pueden conectar y compartir. Primero deberá establecer el bit suid. la pantalla viene apagada y es necesaria para el modo multiusuario:

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

El primer usuario se conecta, corriendo

screen -S shared

La "-S" simplemente le da a la sesión un nombre fácil de usar. Para permitir el acceso multiusuario, use "CTRL + A" para ejecutar comandos de pantalla :

CTRL+A
:multiuser on
:acladd otheruser

Cuando otro usuario se conecta a través de ssh, solo necesita ejecutar

screen -x firstuser/shared

unirse a la sesión

katriel
fuente
2
Si cualquiera de las partes puede usar su/sudopara convertirse en el otro usuario, entonces no necesita meterse con el setuid o los permisos en absoluto. Simplemente use su para que ambas partes usen la misma cuenta. Se ejecuta el primer usuario screen, y luego se ejecuta screen -x.
Zoredache
No se indica explícitamente en la respuesta, pero el segundo usuario solo puede ver lo que se está ejecutando en la sesión de pantalla; es decir, el primer usuario debe ejecutar la pantalla antes de hacer el bit "interesante". Además, si los tamaños de terminal no coinciden, la experiencia del segundo usuario puede ser ... interesante.
David Mackintosh
@ zoredache: de esa manera puede tener problemas con los permisos tty
ptman 05 de
2

Trabajado como un encanto.

También recibí una pista fuera de línea de un tipo con el que chateé proponiendo una solución alternativa:

el usuario que desea compartir utiliza "w" para ver dónde está trabajando el otro tipo ...

# 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

ahora que ahora éramos el otro tipo está trabajando, emitimos esto:

# script | tee /dev/pts/1 

Este método tiene desventajas al propuesto por katriel, ya que es de una sola manera y si olvida usar exit para interrumpir la conexión, el otro pts sigue recibiendo datos incluso si el usuario se desconecta, siendo una amenaza potencial para la seguridad. Pero pensé que valía la pena mencionarlo.

De todos modos, gracias a Katriel y los demás.

ÜMineiro
fuente
1

Simplemente ejecute un servidor VNC en su estación de trabajo y deje que se conecte a eso. Barato y fácil :)

Apenwarr
fuente
VNC está bien para sesiones X, pero no para una sesión de consola.
Cristian Ciupitu
Si su cliente ssh se inicia desde una sesión X, entonces no hay problema.
apenwarr
1

Tengo un pequeño proyecto de código abierto que (espero) satisface perfectamente esta necesidad: Termbeamer .

Le permite iniciar una sesión de terminal y enviarla a una o más personas a través de Internet. Funciona desde detrás de cortafuegos y NAT y tiene una opción de control remoto si desea dejar que la otra persona "conduzca", lo que es bueno para la programación de pares.

Benji York
fuente
0

Apenwarr tiene una buena sugerencia, pero recientemente usé TeamViewer solo para este propósito. Es similar a VNC, pero requiere instalación CERO, en ambos extremos. Sin instalación del servidor, no se requiere instalación del cliente. Incluso hace un recorrido NAT sin configuración ... algo que VNC no puede hacer.

http://teamviewer.com/

Pruébalo, te enamorarás.

fsckin
fuente
Además, cuesta mil millones de dólares.
apenwarr
También corre bajo Wine, que corre bajo X.
Wranorn