GNU/Linux >> Linux の 問題 >  >> Linux

TmuxおよびScreenとのLinuxターミナルセッションの共有

tmuxとGNUScreenは、仮想コンソールの多重化を可能にするよく知られたユーティリティです。どちらを使用しても、セッションを開始し、デタッチし、別のマシンに移動して、中断することなくセッションを再開することができます。これらのツールを使用して、複数のユーザー間で同時に1つのセッションを共有することもできます。

単一アカウントでの基本的なターミナルセッション共有

アカウントが2人以上のユーザー間で共同で保持されている場合、ターミナルコンソールの共有は非常に簡単です。 tmuxもscreenも、複数回ログインした単一のアカウント間での基本的な共有に通常とは異なるものを必要としません。両方が同じユーザーとしてログインしている場合、基本的な共有は非常に簡単です。

画面との基本的な共有

1つの端末で、画面の新しいセッションを作成します。ここで、 foobar スクリーンセッションの名前です:

screen -S foobar

次に、もう一方の端末で、そのセッションに接続します。

screen -x foobar

それだけです。たった2つのステップがありました。

tmuxとの基本的な共有

繰り返しますが、2つのステップしかありません。最初のターミナルで、共有でtmuxを起動します セッション名は次のとおりです:

tmux new-session -s shared

次に、2番目の端末で共有セッションに接続します。

tmux attach-session -t shared

それだけです。

2つの異なるアカウント間でターミナルセッションを共有する

2つの異なるアカウント間で共有するには、あるアカウントが別のアカウントにアクセスするために必要な特権を付与するために、いくつかの追加の手順が必要です。場合によっては、セットアップの準備にシステム管理者の支援が必要になります。

tmuxを使用した2つの異なるアカウント間の共有

さまざまなユーザーに対して、両方のユーザーが読み取りと書き込みを行えるように、tmuxソケットにアクセス許可を設定する必要があります。 2人のユーザーに共通のグループが存在するという前提条件は1つだけです。そのようなグループが存在しない場合は、作成する必要があります。

最初のターミナルで、共有でtmuxを起動します セッション名と共有です ソケットの名前です:

tmux -S /tmp/shareds new -s shared

次に、両方のユーザーが共有するグループにソケットをchgrpします。この例では、ジョイント は、両方のユーザーが共有するグループです。グループに他のユーザーがいる場合は、それらのユーザーにもアクセスできます。そのため、グループには2人のメンバーのみを含めることをお勧めします。

chgrp joint /tmp/shareds

2番目の端末では、そのソケットとセッションを使用して接続します。

tmux -S /tmp/shareds attach -t shared

それでおしまい。セッションは、2番目のユーザーに対して読み取り専用にすることができますが、自発的にのみ行うことができます。読み取り専用で動作するかどうかの決定は、2番目のユーザーがセッションに接続したときに行われます。

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

screenを使用した2つの異なるアカウント間の共有

2人の異なるユーザーとしてログインしている場合、screenを使用するための3つの前提条件があります。まず、screenにSUIDを設定する必要があり、/ var / run/screenからグループ書き込みアクセスを削除する必要があります。このコンテキストでSUIDを使用することの安全性は、考慮すべき点です。次に、画面のACLを使用して、2番目のユーザーに権限を付与する必要があります。

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

最初のユーザーの端末で、上記の基本的な共有のように画面を開始します。ここで、 foobar スクリーンセッションの名前です。次に、マルチユーザーモードをオンにして、 user2を追加します ACLに移動します。ここで、 user2 セッションを共有する2番目のアカウントです。

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

次のACL変更を入力することにより、2番目のユーザーのセッションを読み取り専用にすることができます。^ A:aclchg user2 -w "#?"

次に、もう一方の端末で、最初のユーザーのセッションに接続します。

screen -x user1/foobar

マルチユーザーをオンにし、user2を.screenrcに追加して、画面の開始時に自動的に有効にすることもできます。すべての画面セッションで変更が必要ない場合は、画面の開始時に-cオプションを使用して、個別の.screenrc構成ファイルを指定できます。

後付け

終了するときは注意してください。シェルを終了するだけで、すべての関係者のターミナルセッションが終了します。代わりにセッションを切り離すと、他のユーザーは中断することなく作業を続けることができます。 ^ B-dであるtmuxと、^ A-d

である画面
Linux
  1. Linuxスクリプトコマンドで記録されたターミナルセッションを再生する方法

  2. LinuxでOBSとWaylandを使用した画面記録

  3. 画面コマンドを使用してUbuntu20.04でターミナルセッションを管理する

  1. 試してみる4つのLinuxターミナルマルチプレクサ

  2. 私の機能豊富で最小限のLinuxターミナル

  3. Linuxスクリプトコマンドを使用してターミナルセッションをキャプチャして出力する方法

  1. LinuxターミナルをtmuxとGitでカスタマイズする

  2. コマンドを使用してLinux画面をインストールして使用する方法

  3. LinuxでGNUScreenを使用してターミナルセッションを管理する方法