GNU/Linux >> Tutoriels Linux >  >> Linux

Partage de sessions de terminal Linux avec Tmux et Screen

tmux et GNU Screen sont des utilitaires bien connus qui permettent le multiplexage de consoles virtuelles. En utilisant l'un ou l'autre, il est possible de démarrer une session, de se détacher, de passer à une autre machine et de reprendre la session sans interruption. Il est également possible d'utiliser ces outils pour partager une même session entre plusieurs utilisateurs en même temps.

Partage de session de terminal de base avec un seul compte

Si un compte est détenu conjointement entre deux ou plusieurs utilisateurs, alors le partage de la console du terminal est très simple. Ni tmux ni screen ne nécessitent quoi que ce soit d'extraordinaire pour le partage de base entre un seul compte connecté plusieurs fois. Le partage de base est très facile si vous êtes tous les deux connectés en tant que même utilisateur.

Partage de base avec écran

Dans un terminal, créez une nouvelle session pour screen, où foobar est le nom de votre session d'écran :

screen -S foobar

Ensuite, dans l'autre terminal, attachez-vous à cette session.

screen -x foobar

Ça y est, il n'y avait que deux étapes.

Partage de base avec tmux

Encore une fois, il n'y a que deux étapes. Dans le premier terminal, démarrez tmux où shared est le nom de la session :

tmux new-session -s shared

Ensuite, dans le deuxième terminal, attachez-vous à la session partagée.

tmux attach-session -t shared

C'est tout.

Partage de sessions de terminal entre deux comptes différents

Le partage entre deux comptes différents nécessite quelques étapes supplémentaires pour accorder les privilèges nécessaires à un compte pour accéder à la session d'un autre. Dans certains cas, il faudra l'aide de l'administrateur système pour préparer la configuration.

Partage entre deux comptes différents avec tmux

Pour différents utilisateurs, vous devez définir les autorisations sur le socket tmux afin que les deux utilisateurs puissent le lire et l'écrire. Il n'y a qu'un seul prérequis, qu'il y ait un groupe en commun entre les deux utilisateurs. Si un tel groupe n'existe pas il faudra en créer un.

Dans le premier terminal, démarrez tmux où shared est le nom de la session et partagés est le nom de la socket :

tmux -S /tmp/shareds new -s shared

Chgrp ensuite le socket vers un groupe que les deux utilisateurs partagent en commun. Dans cet exemple, joint est le groupe que les deux utilisateurs partagent. S'il y a d'autres utilisateurs dans le groupe, ils ont également accès. Il peut donc être recommandé que le groupe ne soit composé que de deux membres.

chgrp joint /tmp/shareds

Dans le deuxième terminal, connectez-vous à l'aide de ce socket et de cette session.

tmux -S /tmp/shareds attach -t shared

C'est ça. La session peut être rendue en lecture seule pour le deuxième utilisateur, mais uniquement sur une base volontaire. La décision de travailler en lecture seule est prise lorsque le second utilisateur se connecte à la session.

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

Partage entre deux comptes différents avec screen

Si vous êtes connecté en tant que deux utilisateurs différents, il y a trois conditions préalables à l'utilisation de screen. Tout d'abord, screen doit être défini sur SUID et il est nécessaire de supprimer l'accès en écriture de groupe de /var/run/screen. La sécurité de l'utilisation de SUID dans ce contexte est quelque chose à considérer. Ensuite, vous devez utiliser les ACL de l'écran pour accorder l'autorisation au deuxième utilisateur.

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

Dans le terminal du premier utilisateur, démarrez l'écran comme dans le partage de base ci-dessus, où foobar est le nom de la session d'écran. Activez ensuite le mode multi-utilisateur et ajoutez user2 à l'ACL, où user2 est le deuxième compte à partager la session.

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

La session peut être rendue en lecture seule pour le deuxième utilisateur en entrant le changement d'ACL suivant :^A:aclchg user2 -w "#?"

Ensuite, dans l'autre terminal, attachez-vous à la session du premier utilisateur.

screen -x user1/foobar

Il est également possible de mettre multiuser et d'ajouter user2 dans .screenrc pour qu'il prenne effet automatiquement au démarrage de l'écran. Si les modifications ne sont pas souhaitées dans toutes les sessions d'écran, un fichier de configuration .screenrc séparé peut être spécifié en utilisant l'option -c lors du démarrage de l'écran.

Réflexion après coup

Soyez prudent en sortant. Si vous quittez simplement le shell, cela mettra fin à la session de terminal pour toutes les parties. Si vous détachez plutôt la session, l'autre utilisateur peut continuer à travailler sans interruption. Dans tmux c'est ^B-d et dans screen c'est ^A-d


Linux
  1. 4 multiplexeurs de terminaux Linux à essayer

  2. Comment rejouer les sessions de terminal enregistrées avec la commande de script Linux

  3. Comment capturer les sessions de terminal et la sortie avec la commande de script Linux

  4. Enregistrement d'écran sous Linux avec OBS et Wayland

  5. Utiliser la commande Screen pour gérer les sessions de terminal dans Ubuntu 20.04

Exemples de commandes Tmux pour gérer plusieurs sessions de terminal sous Linux

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Comment installer et utiliser Tmux (multiplexeur de terminaux) sous Linux

tmate :partagez instantanément une session de terminal avec d'autres utilisateurs Linux

Comment installer et utiliser Tmux (multiplexeur de terminaux) dans le système Linux

Linux - Définir la taille du terminal et la position de l'écran par défaut ?