Compartir sesiones de terminal de Linux con Tmux y Screen

Compartir sesiones de terminal de Linux con Tmux y Screen

tmux y GNU Screen son conocidas utilidades que permiten multiplexar consolas virtuales. Usando cualquiera de los dos, es posible iniciar una sesión, desconectarse, pasar a una máquina diferente y reanudar la sesión en un progreso ininterrumpido. También es posible usar estas herramientas para compartir una sola sesión entre más de un usuario al mismo tiempo.

Uso compartido básico de sesiones de terminal con una sola cuenta

Si una cuenta se mantiene conjuntamente entre dos o más usuarios, compartir la consola del terminal es muy simple. Ni tmux ni screen requieren nada fuera de lo común para el uso compartido básico entre una sola cuenta iniciada varias veces. El uso compartido básico es muy fácil si ambos están conectados como el mismo usuario.

Uso compartido básico con la pantalla

En una terminal, cree una nueva sesión para la pantalla, donde Foobar es el nombre de su sesión de pantalla:

screen -S foobar

Luego, en la otra terminal, adjunte a esa sesión.

screen -x foobar

Eso es todo, solo eran dos pasos.

Uso compartido básico con tmux

Nuevamente, solo hay dos pasos. En la primera terminal, inicie tmux donde compartido es el nombre de la sesión:

tmux new-session -s shared

Luego, en el segundo terminal, conéctese a la sesión compartida.

tmux attach-session -t shared

Eso es todo.

Compartir sesiones de terminal entre dos cuentas diferentes

Compartir entre dos cuentas diferentes requiere algunos pasos adicionales para otorgar los privilegios necesarios para que una cuenta acceda a la sesión de otra. En algunos casos, se requerirá la ayuda del administrador del sistema para preparar la configuración.

Compartir entre dos cuentas diferentes con tmux

Para diferentes usuarios, debe configurar los permisos en el socket tmux para que ambos usuarios puedan leerlo y escribirlo. Solo hay un requisito previo, que haya un grupo en común entre los dos usuarios. Si tal grupo no existe, será necesario crear uno.

En la primera terminal, inicie tmux donde compartido es el nombre de la sesión y compartidos es el nombre del socket:

tmux -S /tmp/shareds new -s shared

Luego cambie el socket a un grupo que ambos usuarios compartan. En este ejemplo, articulación es el grupo que comparten ambos usuarios. Si hay otros usuarios en el grupo, entonces también tienen acceso. Por lo tanto, se podría recomendar que el grupo tenga solo los dos miembros.

chgrp joint /tmp/shareds

En el segundo terminal, conéctelo usando ese zócalo y sesión.

tmux -S /tmp/shareds attach -t shared

Eso es todo. La sesión puede ser de solo lectura para el segundo usuario, pero solo de forma voluntaria. La decisión de trabajar en modo de solo lectura se toma cuando el segundo usuario se conecta a la sesión.

tmux -S /tmp/shareds attach -t shared -r

Compartir entre dos cuentas diferentes con pantalla

Si ha iniciado sesión como dos usuarios diferentes, hay tres requisitos previos para usar la pantalla. Primero, la pantalla debe configurarse como SUID y es necesario eliminar el acceso de escritura grupal de /var/run/screen. La seguridad de usar SUID en este contexto es algo a considerar. Luego, debe usar las ACL de la pantalla para otorgar permiso al segundo usuario.

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

En la terminal del primer usuario, inicie la pantalla como en el uso compartido básico anterior, donde Foobar es el nombre de la sesión de pantalla. A continuación, active el modo multiusuario y agregue usuario2 al ACL, donde usuario2 es la segunda cuenta que comparte la sesión.

screen -S foobar
^A:multiuser on
^A:acladd user2

La sesión se puede hacer de solo lectura para el segundo usuario ingresando el siguiente cambio de ACL: ^A:aclchg user2 -w «#?»

Luego, en la otra terminal, adjunte a la sesión del primer usuario.

screen -x user1/foobar

También es posible activar multiusuario y agregar usuario2 en .screenrc para que tenga efecto automáticamente al iniciar la pantalla. Si los cambios no se desean en todas las sesiones de pantalla, se puede especificar un archivo de configuración .screenrc separado usando la opción -c al iniciar la pantalla.

Idea tardía

Tenga cuidado al salir. Si acaba de salir del shell, finalizará la sesión de terminal para todas las partes. Si, en cambio, separa la sesión, el otro usuario puede continuar trabajando sin interrupciones. En tmux eso es ^Bd y en pantalla eso es ^Ad

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *