
私は同じコンピュータ上の他のユーザーとtmuxセッションを共有するためのクリーンでシンプルな方法を探しています。そのオプションを試しましたが、-S socket-path
他の人がセッションに接続する前に、ソケットパスに対するフルアクセス権を開く必要があります。動作しますが、少し面倒です。たとえば、
# Me
$ tmux -S /tmp/pair
$ chmod 777 /tmp/pair
# Another user
$ tmux -S /tmp/pair attach
これは機能しますが、両方のユーザーは同じtmux構成(セッションを開始したユーザーの構成)を共有します。 2人のユーザーが自分のtmux設定とプライベートtmuxキーバインディングを使用できるようにする方法はありますか?
ボーナスポイントを獲得するには、理想的には他のユーザーにtmuxセッションへの読み取り専用アクセス権を付与するのも良い考えです。
答え1
~からhttps://github.com/zolrath/wemux:
wemuxはtmuxを改善し、マルチユーザー端末の再利用をより簡単かつ強力にします。これにより、ユーザーは wemux サーバーをホストし、クライアントが参加できるようになります。
ミラーモードは、クライアント(コンピュータ上の他のSSHユーザー)にセッションへの読み取り専用アクセスを提供し、タスクを表示できるようにします。
ペアリングモードを使用すると、クライアントとユーザーは同じ端末(共有カーソル)で作業できます。
Rogueモードを使用すると、クライアントは同じtmuxセッション内の別のウィンドウ(別々のカーソル)でペアまたは独立して作業できます。
マルチサーバーのサポートはもちろん、ユーザーのリストとユーザーの接続/分離時に通知を提供します。
tmuxのシェルスクリプトラッパーなので、コンパイルは不要です。
答え2
私はこれをUbuntuで試しましたが、なぜ他のUnixバリアントでは機能しないのか理解していません。
両方のユーザーが同じグループのメンバーであり、ソケットパスがそのグループを使用している場合は、両方のユーザーが正常に接続できます。
ソケットパスを作成するたびに権限を変更する代わりに、ソケットの特定のディレクトリを作成できます(私は/ var / tmuxを使用します)。
まず、tmuxユーザーグループを追加してください。
$ addgroup $TMUX_GROUP
ディレクトリを作成し、グループを$ TMUX_GROUPに設定し、setgidビットを使用してディレクトリに作成されたファイルに自動的にグループを$ TMUX_GROUPに設定します。
$ mkdir /var/tmux
$ chgrp $TMUX_GROUP /var/tmux
$ chmod g+ws /var/tmux
次に、セッションを共有したいユーザーが$ TMUX_GROUPのメンバーであることを確認してください。
$ usermod -aG $TMUX_GROUP user1
$ usermod -aG $TMUX_GROUP user2
これで共有セッションを作成します。
$ tmux -S /var/tmp/shared-session
別のアカウントからリンクしてください。
$ tmux -S /var/tmp/shared-session attach
答え3
これはtmuxだけにはありませんが、今はそれを使用しています。
script -f /path/to/some/file
を使用して端末セッションをファイルに書き込むことができます。この-f
オプションは、入力時にファイルを更新します。
他の人(必要に応じてファイルに対する読み取り権限のみがある)は、tail -f
ファイルと端末セッションを見ることができます。この-f
オプションを使用するtail
と、追加された内容に関係なく出力が可能になります。
2つの組み合わせは、端末のビューを「同期化」します。 tmuxと組み合わせて使用すると、2人のユーザーの解像度が異なる場合に発生するサイズ変更を回避できるという利点もあります。もう1つの機能は、各ユーザーが別のプライベートウィンドウまたはセッションで作業できることです。
1つの潜在的な不快感は、いくつかのコマンド(ncursesベースのコマンドなど)が出力、つまりエスケープシーケンス(色)に奇妙な操作を実行できることです。ところでtmuxで使用していますが、tmuxが問題を解決してくれるようです。他のユーザーがマニュアルページを読み込んでバッファを生成する他のコマンドを使用することと、色が正しく表示されることがわかります。
ただし、これはお互いの端末に書き込むことはできません(おそらくこれには他の解決策が追加される可能性があります)。
私は2つのウィンドウで構成されたウィンドウが欲しいです。 1つはscript -f
同僚が見ることができるように実行され、もう1つのウィンドウは私がtail -f
ターミナルであるその隣にあります。
ttyでも動作します(ソケットまたは名前付きパイプもファイルで使用できます)。
答え4
とても便利なツールがありますが、特殊マット。
ホテルのようにインターネットがない場合でも使用できます。
$ apt-cache show tmate
Package: tmate
[...]
Homepage: http://tmate.io/
Description-en: terminal multiplexer with instant terminal sharing
tmate provides an instant pairing solution, allowing you to share a terminal
with one or several teammates. Together with a voice call, it's almost like
pairing in person. The terminal sharing works by using SSH connections to
backend servers maintained by tmate upstream developers; teammates need to be
given a randomly-generated token to be able to join a session.
.
tmate is a modified version of tmux, and uses the same configurations such as
keybindings, color schemes etc.