Простейший случай
В простейшем случае предполагается что все подключаемые пользователи заходят на хост под одним и тем же эккаунтом.
Запуск ведущей сессии:
tmux new-session -s shared_session_name
Присоединение к этой сессии:
tmux attach-session -t shared_session_name
Совместный доступ к одной сессии с различных эккаунтов
Очень похожая ситуация за исключением одного: остальные эккауны должны иметь права доступа на сокет-файл tmux.
Рассмотрим на примере. Предположим пользователь usera
желает предоставить совместный доступ (расшарить на жаргоне админов :) ) свою сессию пользователю userb
.
Для этого пользователь usera
создаёт сессию, явно указывая сокет-файл и имя сессии:
tmux -S /tmp/shareds new -s shared
далее он меняет групповую принадлежность сокет-файла на группу, к которой принадлежат оба пользователя, группу joint.
chgrp joint /tmp/shareds
после чего пользователь userb
писоединяется к сессии, используя сокет-файл и имя сессии:
tmux -S /tmp/shareds attach -t shared
для пользователя userb
возможно подключиться в режиме только чтения, read-only:
tmux -S /tmp/shareds attach -t shared -r
Внимание!
Будьте аккуратны, при выходе из совместной сессии не используйте выход из шелла типа exit
, logoff
, Ctrl+d
, ибо это приведёт к завершению сессии для всех, кто приобщён к этой сессии!!! Просто отделитесь от сессии Ctrl+b d
и остальные присоединённые остануться в сессии.
Расшаренная сессия:
Завершённая для всех расшаренная сессия (пользователь zg вышел при помощи команды exit, при этом инициатор прользователь gz тоже вывалился из tmux):