如何让其他用户访问我的tmux会话?权限配置问题求助
如何让其他用户访问我的tmux会话?权限配置问题求助
看起来你遇到了tmux跨用户访问会话的权限难题,别慌,咱们一步步拆解解决。
首先得搞明白:tmux的会话默认是用户隔离的——每个用户的会话都会存在专属的套接字目录里(比如你看到的/tmp/tmux-1003/default就是artem用户的tmux套接字路径),其他用户没有权限访问这个目录,自然看不到你的会话。你之前尝试修改会话权限没效果,大概率是没找对要改的对象——真正控制访问的是tmux套接字文件和它所在目录的文件系统权限。
下面是具体的解决步骤,你可以跟着操作:
方法一:快速临时共享(适合测试场景)
- 切换到stop用户,重新创建一个指定共享套接字的会话:
这里tmux -S /tmp/shared_nest new -s nest/tmp/shared_nest是咱们指定的公共套接字路径,替代了默认的用户专属路径。 - 可以用
Ctrl+B, D先 detach 会话,然后修改这个套接字的权限,让其他用户能读写:chmod 777 /tmp/shared_nest - 切换到artem用户,用这个套接字路径连接会话:
tmux -S /tmp/shared_nest attach -t nest
方法二:安全持久的共享(推荐生产环境使用)
直接给777权限安全性太差,咱们用用户组来精准控制访问范围:
- 创建一个专门的tmux共享用户组:
sudo groupadd tmux-shared - 把需要访问会话的用户(stop和artem)加入这个组:
注意:这两个用户需要重新登录,组权限才会生效。sudo usermod -aG tmux-shared stop sudo usermod -aG tmux-shared artem - 创建一个非临时目录存放共享套接字(避免系统重启后/tmp的文件被清空):
sudo mkdir /var/tmux sudo chgrp tmux-shared /var/tmux sudo chmod 770 /var/tmux - 切换到stop用户,创建带指定套接字的会话:
tmux -S /var/tmux/nest new -s nest - 设置套接字的组权限:
chgrp tmux-shared /var/tmux/nest chmod 770 /var/tmux/nest - artem用户现在可以用下面的命令连接:
tmux -S /var/tmux/nest attach -t nest
额外小技巧
如果你不想重新创建已有的会话,可以先detach会话,然后用move-socket命令把套接字移到共享路径,再调整权限:
tmux move-socket -t nest /var/tmux/nest
需要提醒的是:artem用户连接后,在会话里执行的命令会继承stop用户的权限,这点要注意安全风险。
备注:内容来源于stack exchange,提问作者Ігор Підлужний
相关产品推荐
相关产品推荐

