tmuxとGNUScreenは、仮想コンソールの多重化を可能にするよく知られたユーティリティです。どちらを使用しても、セッションを開始し、デタッチし、別のマシンに移動して、中断することなくセッションを再開することができます。これらのツールを使用して、複数のユーザー間で同時に1つのセッションを共有することもできます。
アカウントが2人以上のユーザー間で共同で保持されている場合、ターミナルコンソールの共有は非常に簡単です。 tmuxもscreenも、複数回ログインした単一のアカウント間での基本的な共有に通常とは異なるものを必要としません。両方が同じユーザーとしてログインしている場合、基本的な共有は非常に簡単です。
1つの端末で、画面の新しいセッションを作成します。ここで、 foobar スクリーンセッションの名前です:
screen -S foobar
次に、もう一方の端末で、そのセッションに接続します。
screen -x foobar
それだけです。たった2つのステップがありました。
tmuxとの基本的な共有
繰り返しますが、2つのステップしかありません。最初のターミナルで、
tmux new-session -s shared
次に、2番目の端末で共有セッションに接続します。
tmux attach-session -t shared
それだけです。
2つの異なるアカウント間でターミナルセッションを共有する
2つの異なるアカウント間で共有するには、あるアカウントが別のアカウントにアクセスするために必要な特権を付与するために、いくつかの追加の手順が必要です。場合によっては、セットアップの準備にシステム管理者の支援が必要になります。
tmuxを使用した2つの異なるアカウント間の共有
さまざまなユーザーに対して、両方のユーザーが読み取りと書き込みを行えるように、tmuxソケットにアクセス許可を設定する必要があります。 2人のユーザーに共通のグループが存在するという前提条件は1つだけです。そのようなグループが存在しない場合は、作成する必要があります。
最初のターミナルで、
tmux -S /tmp/shareds new -s shared
次に、両方のユーザーが共有するグループにソケットをchgrpします。この例では、
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
である画面