GNU/Linux >> Tutoriales Linux >  >> Linux

Compartir sesiones de terminal de Linux con Tmux y Screen

tmux y GNU Screen son utilidades conocidas 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 de sesión de terminal básico 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 han iniciado sesión como el mismo usuario.

Uso compartido básico con 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 fueron dos pasos.

Uso compartido básico con tmux

Nuevamente, solo hay dos pasos. En la primera terminal, inicie tmux donde shared 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 shared es el nombre de la sesión y shares 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, joint 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 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. Luego active el modo multiusuario y agregue user2 a la 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.

pensamiento tardío

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 es ^B-d y en pantalla es ^A-d


Linux
  1. 4 multiplexores de terminal Linux para probar

  2. Cómo reproducir sesiones de terminal grabadas con el comando de script de Linux

  3. Cómo capturar sesiones de terminal y salida con el comando de script de Linux

  4. Grabación de pantalla en Linux con OBS y Wayland

  5. Use el comando de pantalla para administrar sesiones de terminal en Ubuntu 20.04

Ejemplos de comandos Tmux para administrar múltiples sesiones de terminal en Linux

Cómo trabajar con procesos en primer plano y en segundo plano en Linux

Cómo instalar y usar Tmux (terminal multiplexor) en Linux

tmate:Comparta instantáneamente la sesión de terminal con otros usuarios de Linux

Cómo instalar y usar Tmux (terminal multiplexor) en el sistema Linux

Linux - ¿Establecer el tamaño predeterminado del terminal y la posición de la pantalla?