tmux:共享会话,一个用户在一个窗格中,另一个用户在另一个窗格中,两个不同的光标

tmux:共享会话,一个用户在一个窗格中,另一个用户在另一个窗格中,两个不同的光标

我决定尝试 tmux:一直在阅读文档并进行谷歌搜索,试图找到一种方法让两个用户共享一个会话,每个用户都有不同的光标。

然而,给套接字赋予 777 权限,或者创建一个组,chgrp对套接字进行操作并将两个用户添加到其中,似乎让同一个套接字仅与一个游标共享会话:两个用户都可以写入,但始终在相同的光标位置。

现在两个用户都通过 ssh 访问同一个家庭服务器,我们的目标是:

  • 比如说,左窗格中的终端,我可以在其中输入命令
  • 右窗格中的另一个终端,我可以看到另一个用户在他自己的终端中键入命令
  • 对于其他用户来说同样的事情

我现在正在做的是使用两个会话(不共享)和一个script -ftail -f组合,这有点用于读取彼此的击键,但我认为可能有某种方法可以使用 tmux 共享功能来做到这一点。

有没有办法让这个想法与彼此终端的写入支持一起工作?

更好的方法是什么?

答案1

这个问题有点老了,但我一直在寻找类似的东西,并找到了它这里。它创建第二个会话,与第一个会话共享窗口,但有自己的视图和光标。

tmux new-session -s alice
tmux new-session -t alice -s bob

如果两个用户帐户之间发生共享,您可能仍然需要混乱权限(听起来你已经在工作了)。

编辑:根据建议,引用自另一个答案:

首先,为tmux用户添加一个组

export TMUX_GROUP=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

答案2

您可以尝试同时运行两个单独的 tmux 会话 - 一个为您,第二个为其他用户。然后,使用操作系统的窗口系统并排排列两个终端,一个给你,一个给他。如果你需要在他的终端里写,就选择它来输入即可。

您运行(每个命令在其自己的终端中):

tmux new-session -s Alice
tmux new-session -s Bob

然后 Bob 运行(同样,每个命令都在自己的终端中):

tmux attach -t Alice
tmux attach -t Bob

如果您没有支持并排显示的窗口系统或者您讨厌鼠标,那么您可以在非共享屏幕/tmux 包装会话中(小心地)进行设置。

相关内容