![tmux:共享会话,一个用户在一个窗格中,另一个用户在另一个窗格中,两个不同的光标](https://linux22.com/image/52424/tmux%EF%BC%9A%E5%85%B1%E4%BA%AB%E4%BC%9A%E8%AF%9D%EF%BC%8C%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E5%9C%A8%E4%B8%80%E4%B8%AA%E7%AA%97%E6%A0%BC%E4%B8%AD%EF%BC%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%AA%97%E6%A0%BC%E4%B8%AD%EF%BC%8C%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E5%85%89%E6%A0%87.png)
我决定尝试 tmux:一直在阅读文档并进行谷歌搜索,试图找到一种方法让两个用户共享一个会话,每个用户都有不同的光标。
然而,给套接字赋予 777 权限,或者创建一个组,chgrp
对套接字进行操作并将两个用户添加到其中,似乎让同一个套接字仅与一个游标共享会话:两个用户都可以写入,但始终在相同的光标位置。
现在两个用户都通过 ssh 访问同一个家庭服务器,我们的目标是:
- 比如说,左窗格中的终端,我可以在其中输入命令
- 右窗格中的另一个终端,我可以看到另一个用户在他自己的终端中键入命令
- 对于其他用户来说同样的事情
我现在正在做的是使用两个会话(不共享)和一个script -f
和tail -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 包装会话中(小心地)进行设置。