前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >天天都在用的 Tmux,可你知道如何在多用户间共享 Session 吗?

天天都在用的 Tmux,可你知道如何在多用户间共享 Session 吗?

作者头像
iMike
发布2020-02-21 15:26:47
1.2K0
发布2020-02-21 15:26:47
举报
文章被收录于专栏:运维之美运维之美

Tmux Server 管理着多个 Session,而一个 Session 可以被多个 Tmux Client连接。这些 Tmux Client 通过一个 UNIX Damain Socket 文件来跟 Tmux Server 通讯。

因此,要想让多个用户共享 Tmux Session,只需要指定这些用户调用的 Tmux Client 连接上同一个 Socket 文件即可。而这可以分成两种情况:

  • 多个用户使用同一个操作系统帐号
  • 多个用户使用不同的操作系统帐号

这两者的区别主要在 Socket 文件的权限问题。

多个用户使用同一个操作系统帐号

在多个用户使用同一个操作系统帐号时,不存在用户访问 Socket 文件的权限问题。因此操作起来特别简单,只需要多个用户指定同一个 Tmux Session 名字就行了。

1. 第一个用户新建一个 Tmux Session

代码语言:javascript
复制
$ tmux new-session -s mysession

2. 第二个用户连接上这个 Tmux session 即可

代码语言:javascript
复制
$ tmux attach-session -t mysession

多个用户使用不同的操作系统帐号

当多个用户使用不同帐号登录操作系统时,就存在访问 Socket 文件的权限问题了。

那么 Tmux Server 使用的 Socket 文件在哪里呢?

根据 Tmux Manual Page 的说法,Tmux 的 Socket 文件默认为 /tmp/ 或 ${TMUX_TMPDIR}/ 目录下的 default 文件。

但当使用 -L socket-name 指定 socket-name 时,该 Socket 文件为 /tmp/ 或 ${TMUX_TMPDIR}/ 目录下的 ${socket-name} 文件。甚至,我们可以通过 -S socket-path 的方法来直接指定 Socket 文件的路径。

为了让多个用户在不同帐号间共享 Tmux Session,我们可以这么做:

1. 第一个用户指定一个 Socket 文件来创建 Tmux Session

代码语言:javascript
复制
$ tmux -S /tmp/shared new-session -s shared

这时你会看到在 /tmp/ 目录下多了一个 shared 文件。

代码语言:javascript
复制
$ ls -l /tmp/shared
srwxrwx--- 1 lujun9972 lujun9972 0 8月 19 23:25 /tmp/shared

你会发现 user 和 group 都有权限对其进行读写。为了让其他账户能够访问Socket 文件,有两种方法:

第一种方法是让这些账户处于同一个用户组 (例如:joint)中,再将 Socket 文件的宿组改为那个用户组( 即:joint 组)

代码语言:javascript
复制
$ usermod -a -G joint user1
$ usermod -a -G joint user2
$ chown :joint /tmp/shared

另一种方法当然就是让 Socket 文件让 Other 组也能访问啦。

代码语言:javascript
复制
$ chmod 777 /tmp/shared

若其他用户只是查看 Tmux Session 而不做输入的话,也可以不赋予写权限。

代码语言:javascript
复制
$ chmod 775 /tmp/shared

解决了权限问题后,其他用户可以通过这个 Socket 文件连接上同一个 Session 了。

代码语言:javascript
复制
$ tmux -S /tmp/shared attach-session -t shared
或者
$ tmux -S /tmp/shared attach-session -t shared -r

来源:GitHub 原文:http://t.cn/Ai9xRNon 题图:来自谷歌图片搜索 版权:本文版权归原作者所有 投稿:欢迎投稿,投稿邮箱: editor@hi-linux.com

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇妙的Linux世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档