두 사용자 간에 tmux 세션을 공유하는 다른 방법은 무엇입니까?

두 사용자 간에 tmux 세션을 공유하는 다른 방법은 무엇입니까?

나는 같은 컴퓨터에서 다른 사용자와 tmux 세션을 공유하는 깨끗하고 간단한 방법을 찾고 있습니다. 해당 옵션을 시도했지만 -S socket-path다른 사람이 세션에 연결하려면 먼저 소켓 경로에 대한 모든 권한을 열어야 합니다. 작동하지만 약간 번거롭습니다. 예를 들어:

# Me
$ tmux -S /tmp/pair
$ chmod 777 /tmp/pair

# Another user
$ tmux -S /tmp/pair attach

이는 작동하지만 이제 두 사용자 모두 동일한 tmux 구성(세션을 시작한 사용자의 구성)을 공유합니다. 두 명의 사용자가 자신의 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하면 추가된 내용에 관계없이 출력이 가능해집니다.

두 가지의 조합은 터미널의 보기를 "동기화"합니다. tmux와 함께 사용하면 두 사용자의 해상도가 다를 때 발생하는 크기 조정을 피할 수 있다는 장점도 있습니다. 또 다른 기능은 각 사용자가 다른 개인 창이나 세션에서 작업할 수 있다는 것입니다.

한 가지 잠재적인 불편함은 일부 명령(예: ncurses 기반 명령)이 출력, 즉 이스케이프 시퀀스(색상)에 이상한 작업을 수행할 수 있다는 것입니다. 그런데 tmux에서 사용하고 있는데 tmux가 문제를 해결해주는 것 같습니다. 다른 사용자가 매뉴얼 페이지를 읽고 버퍼를 생성하는 다른 명령을 사용하는 것과 색상이 올바르게 나타나는 것을 볼 수 있습니다.

그러나 이는 서로의 터미널에 쓰는 것을 허용하지 않습니다(아마도 이를 위해 다른 솔루션이 추가될 수 있습니다).

나는 두 개의 창으로 구성된 창을 갖고 싶습니다. 하나는 script -f동료들이 볼 수 있도록 실행되고, 또 다른 창은 내가 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.

관련 정보