GNU/Linux >> Znalost Linux >  >> Linux

Sdílení relací terminálu Linux pomocí Tmux a obrazovky

tmux a GNU Screen jsou dobře známé nástroje, které umožňují multiplexování virtuálních konzolí. Pomocí obou je možné zahájit relaci, odpojit se, přesunout se na jiný počítač a obnovit relaci v nepřerušovaném průběhu. Tyto nástroje je také možné použít ke sdílení jedné relace mezi více než jedním uživatelem současně.

Základní sdílení relací terminálu s jedním účtem

Pokud je účet veden společně dvěma nebo více uživateli, je sdílení terminálové konzole velmi jednoduché. Ani tmux, ani obrazovka nevyžadují nic neobvyklého pro základní sdílení mezi jedním vícekrát přihlášeným účtem. Základní sdílení je velmi snadné, pokud jste oba přihlášeni jako stejný uživatel.

Základní sdílení s obrazovkou

V jednom terminálu vytvořte novou relaci pro obrazovku, kde je foobar je název vaší relace obrazovky:

screen -S foobar

Poté se v druhém terminálu připojte k této relaci.

screen -x foobar

To je vše, byly to jen dva kroky.

Základní sdílení s tmux

Opět existují pouze dva kroky. V prvním terminálu spusťte tmux, kde je sdíleno je název relace:

tmux new-session -s shared

Poté se ve druhém terminálu připojte ke sdílené relaci.

tmux attach-session -t shared

To je ono.

Sdílení terminálových relací mezi dvěma různými účty

Sdílení mezi dvěma různými účty vyžaduje některé další kroky k udělení oprávnění nezbytných pro jeden účet pro přístup k relaci jiného. V některých případech bude příprava nastavení vyžadovat pomoc správce systému.

Sdílení mezi dvěma různými účty pomocí tmux

Pro různé uživatele musíte nastavit oprávnění na soketu tmux tak, aby jej mohli číst a zapisovat oba uživatelé. Existuje pouze jeden předpoklad, že mezi dvěma uživateli existuje společná skupina. Pokud taková skupina neexistuje, bude nutné ji vytvořit.

V prvním terminálu spusťte tmux, kde je sdíleno je název relace a sdílené položky je název soketu:

tmux -S /tmp/shareds new -s shared

Poté změňte soket na skupinu, kterou oba uživatelé sdílejí společně. V tomto příkladu spojení je skupina, kterou oba uživatelé sdílejí. Pokud jsou ve skupině další uživatelé, pak mají také přístup. Lze tedy doporučit, aby skupina měla pouze dva členy.

chgrp joint /tmp/shareds

Ve druhém terminálu připojte pomocí tohoto soketu a relace.

tmux -S /tmp/shareds attach -t shared

A je to. Relace může být provedena pouze pro čtení pro druhého uživatele, ale pouze na základě dobrovolnosti. Rozhodnutí pracovat pouze pro čtení je učiněno, když se k relaci připojí druhý uživatel.

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

Sdílení mezi dvěma různými účty s obrazovkou

Pokud jste přihlášeni jako dva různí uživatelé, existují tři předpoklady pro používání obrazovky. Nejprve je třeba na obrazovce nastavit SUID a je nutné odebrat skupinový přístup pro zápis z /var/run/screen. Bezpečnost používání SUID v tomto kontextu je něco, co je třeba zvážit. Potom musíte použít ACL obrazovky k udělení oprávnění druhému uživateli.

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

V terminálu prvního uživatele přejděte na úvodní obrazovku jako v základním sdílení výše, kde je foobar je název relace obrazovky. Poté zapněte víceuživatelský režim a přidejte uživatel2 do ACL, kde uživatel2 je druhý účet, který sdílí relaci.

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

Relace může být pro druhého uživatele pouze pro čtení zadáním následující změny ACL:^A:aclchg user2 -w "#?"

Poté se v druhém terminálu připojte k relaci prvního uživatele.

screen -x user1/foobar

Je také možné zapnout multiuser a acladd user2 do .screenrc, aby se to projevilo automaticky při startu obrazovky. Pokud změny nejsou požadovány ve všech relacích obrazovky, pak lze zadat samostatný konfigurační soubor .screenrc pomocí volby -c na úvodní obrazovce.

Následný nápad

Při vystupování buďte opatrní. Pokud právě opustíte shell, ukončí to terminálovou relaci pro všechny strany. Pokud místo toho relaci odpojíte, druhý uživatel může pokračovat v práci bez přerušení. V tmux je to ^B-d a na obrazovce je to ^A-d


Linux
  1. Jak přehrát terminálové relace zaznamenané pomocí příkazu skriptu Linux

  2. Jak zachytit terminálové relace a výstup pomocí příkazu skriptu Linux

  3. Nahrávání obrazovky v Linuxu s OBS a Wayland

  1. 4 linuxové terminálové multiplexery k vyzkoušení

  2. Můj funkčně bohatý a minimální linuxový terminál

  3. Pomocí příkazu obrazovky můžete spravovat terminálové relace v Ubuntu 20.04

  1. Přizpůsobení mého linuxového terminálu pomocí tmux a Git

  2. Jak nainstalovat a používat obrazovku Linux s příkazy

  3. Jak používat obrazovku GNU ke správě terminálových relací v Linuxu