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