Каковы другие способы совместного использования сеанса 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 другим пользователям.

5 Solutions collect form web for “Каковы другие способы совместного использования сеанса tmux между двумя пользователями?”

Из https://github.com/zolrath/wemux :

wemux усиливает tmux, чтобы сделать мультиплексированное мультиплексирование терминала более простым и мощным. Он позволяет пользователям размещать сервер wemux и присоединяться к ним:

Режим Mirror предоставляет клиентам (другим пользователям SSH на вашем компьютере) доступ к чтению только для чтения, что позволяет им видеть работу или

Pair Mode позволяет клиенту и самому себе работать в одном и том же терминале (общий курсор)

Режим Rogue позволяет клиенту совместно или независимо работать в другом окне (отдельные курсоры) в одном сеансе tmux.

Он поддерживает многосерверную поддержку, а также перечисление пользователей и уведомления при подключении / отсоединении пользователей.

Это оболочечная оболочка над tmux – не требуется компиляция.

Я пробовал это на 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 

Насколько мне известно, невозможно провести сеансы с другими пользователями «чистым» способом.

Также доступ для чтения недоступен, если клиент не использует -r .

Поскольку другой экран терминального мультиплексора поддерживает функции, которые вы ищете, к сожалению также громоздким способом … Я не уверен, что это вариант для вас, но, возможно, кто-то другой найдет это полезным.

Решение для экрана :

Хост сеанса:

  • Должен быть установлен бит SUID экрана : – /
  • Откройте сеанс с screen -S sessionname
  • ctrl a + :multiuser on режим
  • ctrl + :acladd otherUsername

Присоединиться к сессии:

  • screen -x username/sessionname

Вы можете установить биты разрешения для пользователя (* для всех) с помощью :aclchg или :chacl . # добавлено будет влиять на окна,? прилагается, будет влиять на команды.

Примеры:

  • :aclchg * -wx "#,?" установит разрешения для сеанса чтения только для всех пользователей
  • :aclchg foo +w 2 даст доступ для записи для пользователя foo на окне 2
  • :aclchg bar +x detach даст разрешение на отключение сеанса до пользовательской панели

Это не эксклюзивно для tmux, но сейчас это то, что я использую:

Вы можете использовать script -f /path/to/some/file для записи сеанса терминала в файл. Параметр -f обновляет файл во время ввода.

Кто-то еще (с разрешениями на чтение для файла, если хотите) может сделать tail -f чтобы увидеть файл, сеанс терминала. Параметр -f делает вывод tail любым добавленным.

Сочетание двух «синхронных» представлений терминала. Когда используется tmux, у него также есть преимущество избежать изменения размера, которое происходит, когда оба пользователя имеют разные разрешения. Другая особенность заключается в том, что каждый пользователь может работать в другом частном окне или сеансе.

Один из потенциальных неудобств состоит в том, что некоторые команды (например, ncurses) могут делать странные вещи для вывода, также escape-последовательности (цвета). Тем не менее, я использую это внутри tmux, и кажется, что tmux исправляет эти проблемы. Я могу видеть, что другие пользователи читают man-страницы и используют другие команды, которые создают буферы, цвета отображаются правильно и т. Д.

Это не позволяет писать на терминал друг друга (возможно, для этого может быть добавлено другое решение).

Мне нравится иметь окно с двумя панелями: один script -f выполняемый на панели, – для моего сверстника, а другой рядом с ним, где я tail -f это терминал.

Он также работает в ttys (и сокеты или именованные каналы могут использоваться также для файла)

Это уже не 2010, теперь вы можете делиться сеансом tmux между несколькими пользователями по уже существующему сеансу с помощью:

 tmux attach 
  • tmux: общий сеанс, один пользователь в панели, другой в другой панели, два разных курсора
  • tmux, как связать ключ для входа в режим VI и искать назад?
  • TMUX: После сплит-окна, как узнать новый идентификатор панели?
  • Как автоматически закрыть окно tmux при закрытии окна терминала?
  • Как определить, подключен ли tmux?
  • tmux: приложения ncurses отображаются неправильно (с мусором и т. д.)
  • Каковы достоинства многозадачности с традиционным управлением заданиями и Tmux / Screen?
  • Как я могу переслать уже пересылаемый ssh-ключ в tmux?
  • Проблема с сокращением Tmux
  • Может ли несколько пользователей одновременно выполнять команды, используя tmate с отдельными курсорами в одном сеансе?
  • Как изменить определенные привязки клавиш в Tmux?
  • Linux и Unix - лучшая ОС в мире.