GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Teilen von Linux-Terminalsitzungen mit Tmux und Screen

tmux und GNU Screen sind bekannte Dienstprogramme, die das Multiplexing virtueller Konsolen ermöglichen. Mit beiden ist es möglich, eine Sitzung zu starten, zu trennen, zu einem anderen Computer zu wechseln und die Sitzung ohne Unterbrechung fortzusetzen. Es ist auch möglich, diese Tools zu verwenden, um eine einzelne Sitzung von mehr als einem Benutzer gleichzeitig zu teilen.

Grundlegende Terminalsitzungsfreigabe mit einem einzigen Account

Wird ein Konto gemeinsam von zwei oder mehreren Nutzern geführt, ist die gemeinsame Nutzung der Endgerätekonsole sehr einfach. Weder tmux noch screen erfordern etwas Außergewöhnliches für die grundlegende gemeinsame Nutzung zwischen einem einzelnen Konto, das mehrfach angemeldet ist. Die grundlegende Freigabe ist sehr einfach, wenn Sie beide als derselbe Benutzer angemeldet sind.

Grundlegendes Teilen mit dem Bildschirm

Erstellen Sie in einem Terminal eine neue Sitzung für den Bildschirm, wobei foobar ist der Name Ihrer Bildschirmsitzung:

screen -S foobar

Verbinden Sie sich dann im anderen Terminal mit dieser Sitzung.

screen -x foobar

Das war's, es waren nur noch zwei Schritte.

Grundlegendes Teilen mit tmux

Auch hier gibt es nur zwei Schritte. Starten Sie im ersten Terminal tmux wo shared ist der Sitzungsname:

tmux new-session -s shared

Verbinden Sie sich dann im zweiten Terminal mit der freigegebenen Sitzung.

tmux attach-session -t shared

Das ist es.

Teilen von Terminalsitzungen zwischen zwei verschiedenen Konten

Die gemeinsame Nutzung zwischen zwei verschiedenen Konten erfordert einige zusätzliche Schritte, um die Berechtigungen zu erteilen, die erforderlich sind, damit ein Konto auf die Sitzung eines anderen zugreifen kann. In einigen Fällen ist die Hilfe des Systemadministrators erforderlich, um die Einrichtung vorzubereiten.

Freigabe zwischen zwei verschiedenen Konten mit tmux

Für verschiedene Benutzer müssen Sie die Berechtigungen auf dem tmux-Socket so einstellen, dass beide Benutzer lesen und schreiben können. Es gibt nur eine Voraussetzung, dass es eine gemeinsame Gruppe zwischen den beiden Benutzern gibt. Wenn eine solche Gruppe nicht existiert, muss eine erstellt werden.

Starten Sie im ersten Terminal tmux wo shared ist der Sitzungsname und shareds ist der Name des Sockets:

tmux -S /tmp/shareds new -s shared

Dann chgrp den Socket zu einer Gruppe, die beide Benutzer gemeinsam nutzen. In diesem Beispiel joint ist die Gruppe, die sich beide Benutzer teilen. Wenn es andere Benutzer in der Gruppe gibt, dann haben diese auch Zugriff. Daher könnte es empfehlenswert sein, dass die Gruppe nur aus zwei Mitgliedern besteht.

chgrp joint /tmp/shareds

Verbinden Sie sich im zweiten Terminal mit diesem Socket und dieser Sitzung.

tmux -S /tmp/shareds attach -t shared

Das ist es. Die Sitzung kann für den zweiten Benutzer schreibgeschützt gemacht werden, jedoch nur auf freiwilliger Basis. Die Entscheidung, schreibgeschützt zu arbeiten, wird getroffen, wenn sich der zweite Benutzer der Sitzung anschließt.

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

Freigabe zwischen zwei verschiedenen Konten mit Bildschirm

Wenn Sie als zwei verschiedene Benutzer angemeldet sind, gibt es drei Voraussetzungen für die Verwendung von screen. Zuerst muss screen auf SUID gesetzt werden und es ist notwendig, den Gruppenschreibzugriff von /var/run/screen zu entfernen. Die Sicherheit der Verwendung von SUID in diesem Zusammenhang ist zu berücksichtigen. Dann müssen Sie die ACLs des Bildschirms verwenden, um dem zweiten Benutzer die Berechtigung zu erteilen.

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

Starten Sie im Terminal des ersten Benutzers den Bildschirm wie bei der einfachen Freigabe oben, wobei foobar ist der Name der Bildschirmsitzung. Aktivieren Sie dann den Multiuser-Modus und fügen Sie user2 hinzu zur ACL, wo user2 ist das zweite Konto, das die Sitzung teilt.

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

Die Sitzung kann für den zweiten Benutzer schreibgeschützt gemacht werden, indem die folgende ACL-Änderung eingegeben wird:^A:aclchg user2 -w "#?"

Hängen Sie dann im anderen Terminal an die Sitzung des ersten Benutzers an.

screen -x user1/foobar

Es ist auch möglich, multiuser einzuschalten und user2 in .screenrc hinzuzufügen, damit es beim Start des Bildschirms automatisch wirksam wird. Wenn die Änderungen nicht in allen Bildschirmsitzungen erwünscht sind, kann eine separate .screenrc-Konfigurationsdatei angegeben werden, indem die Option -c beim Start von Bildschirm verwendet wird.

Nachtrag

Vorsicht beim Aussteigen. Wenn Sie die Shell einfach verlassen, wird die Terminalsitzung für alle Parteien beendet. Wenn Sie stattdessen die Sitzung trennen, kann der andere Benutzer ohne Unterbrechung weiterarbeiten. In tmux ist das ^B-d und in screen ist das ^A-d


Linux
  1. 4 Linux-Terminal-Multiplexer zum Ausprobieren

  2. So geben Sie Terminalsitzungen wieder, die mit dem Linux-Skriptbefehl aufgezeichnet wurden

  3. So erfassen Sie Terminalsitzungen und geben sie mit dem Linux-Skriptbefehl aus

  4. Bildschirmaufnahme in Linux mit OBS und Wayland

  5. Verwenden Sie den Bildschirmbefehl, um Terminalsitzungen in Ubuntu 20.04 zu verwalten

Beispiele für Tmux-Befehle zum Verwalten mehrerer Terminalsitzungen unter Linux

So arbeiten Sie mit Vordergrund- und Hintergrundprozessen unter Linux

So installieren und verwenden Sie Tmux (Terminal Multiplexer) unter Linux

tmate:Teilen Sie die Terminalsitzung sofort mit anderen Linux-Benutzern

So installieren und verwenden Sie Tmux (Terminal Multiplexer) im Linux-System

Linux - Standard-Terminalgröße und Bildschirmposition festlegen?