Установка и совместная работа с Wemux (шаг за шагом)

Wemux — это надстройка над tmux, позволяющая нескольким пользователям подключаться к одной или нескольким сессиям tmux и работать совместно или только наблюдать. Wemux добавляет удобные роли (host/guest), управляет привилегиями доступа и упрощает запуск разделяемых терминалов по SSH.
Что такое tmux и Wemux (в 1 строке)
- tmux — терминальный мультиплексор: позволяет хранить несколько окон и сессий в одном терминале.
- Wemux — набор скриптов и конфигураций, расширяющий tmux для мультипользовательской работы в реальном времени.
Основные сценарии использования
- Быстрый совместный дебаг и код-ревью по SSH.
- Публичные демонстрации, где один хост показывает и/или даёт интерактивный доступ гостям.
- Разделение рабочих групп по проектам (несколько независимых серверов Wemux).
Установка Wemux на Linux
Ниже — проверенная и исправленная последовательность команд для Debian/Ubuntu-подобных систем. Перед началом убедитесь, что у вас есть права sudo.
- Обновите систему:
sudo apt update && sudo apt upgrade -y- Установите зависимости (обратите внимание на пробелы в командах):
sudo apt install git tmux ssh- Склонируйте репозиторий Wemux в домашнюю директорию:
cd ~
git clone https://github.com/zolrath/wemux.git- Скопируйте папку проекта в общую системную директорию (пример — /usr/local/share):
sudo cp -rv ~/wemux /usr/local/share- Создайте символическую ссылку, чтобы команда wemux была в PATH:
cd /usr/local/share
sudo ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux
- Скопируйте пример конфигурации в /usr/local/etc и при необходимости отредактируйте:
sudo cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf- Перезапустите или обновите текущую оболочку и проверьте установку:
hash -r
wemux help
Важно: если у вас используется дистрибутив без /usr/local/etc в PATH или без прав на запись, скорректируйте директории в соответствии с политиками вашей системы.
Первый запуск и настройка хоста
Wemux слушает команды только от пользователей, перечисленных в конфигурации. По умолчанию переменная host_list пуста — вам нужно явно указать пользователя-хоста.
- Откройте конфиг:
sudo nano /usr/local/etc/wemux.conf- В разделе HOST OPTIONS найдите строку host_list и задайте значение:
host_list=("ваш_логин")Подсказка: узнать текущий пользователь можно командой whoami.

- Чтобы разрешить запуск нескольких независимых серверов на одной машине, в разделе MULTI-HOST OPTIONS включите allow_server_change, удалив символ # в начале строки:
allow_server_change=true
- Сохраните файл и протестируйте создание сессии:
wemux start
Если команда не запускается, проверьте права на /usr/local/bin/wemux и синтаксис файла wemux.conf.
Как гости подключаются к разделяемой сессии
Типичный поток: гость подключается по SSH к машине, где запущен wemux, и использует роль guest для подсоединения.
- Создайте системного пользователя для гостя (пример — alice):
sudo adduser alice- Убедитесь, что у пользователя есть домашняя директория:
ls -l /home
- На стороне хоста выдайте доступ tmux server-access для гостя (эта команда не сохраняется между перезагрузками сервера tmux):
tmux server-access -a aliceЭта команда устанавливает разрешение ядра tmux на подключение указанного пользователя.

- Как гость: подключитесь по SSH и выполните:
wemux mЭто подключит вас к основной сессии хоста в режиме просмотра или взаимодействия в зависимости от конфигурации.

Совет: если гостю нужен постоянный доступ без повторного изменения server-access, настройте системные группы или автоматизацию (см. раздел о группах ниже).
Разрешение интерактивного совместного редактирования
По умолчанию гости могут только смотреть. Чтобы разрешить им взаимодействовать:
- Отделитесь от текущей сессии (на хосте): Ctrl+B, затем D.
- Остановите демона Wemux:
wemux stop- Откройте конфиг и добавьте имя пользователя или группу в host_list/host_groups:
sudo nano /usr/local/etc/wemux.conf
# пример
guest_list=("alice","bob")
host_groups=("devops")- Сохраните и перезапустите сессию:
wemux start
- Для подключения гость использует команду:
wemux attach
Управление несколькими серверами Wemux
Wemux поддерживает создание независимых групп-серверов (например, для разных проектов).
- На хосте создайте и запустите новую группу:
wemux join my-new-project
wemux start- На гостевой учётной записи подключитесь к той же группе:
wemux join my-new-project
wemux attach
Это позволяет изолировать сессии между командами и проектами.
Безопасность и лучшие практики
- Убедитесь, что SSH настроен по современным рекомендациям: отключите root-login по паролю, используйте ключи SSH, включите fail2ban при необходимости.
- Запускайте Wemux только на выделенных машинах или контейнерах, где позволены многопользовательские сессии.
- Ограничивайте host_list и host_groups конкретными пользователями/группами; избегайте wildcard-доступа.
- При необходимости используйте sudoers для делегирования отдельных команд вместо полного доступа.
- Логи: перенаправляйте вывод аудит-логов (SSH, tmux) в централизованную систему для анализа активности.
Важно: Wemux облегчает взаимодействие, но не заменяет процессы аутентификации и аудита.
Тонкости и частые ошибки (и как их решать)
Проблема: wemux не запускается / команда не найдена.
Решение: проверьте /usr/local/bin/wemux, права на исполняемый файл и корректность символической ссылки (ls -l /usr/local/bin/wemux).Проблема: гостя не пускает, ошибка доступа tmux.
Решение: выполните tmux server-access -a GUEST на хосте и проверьте, что гостевой пользователь присутствует в host_list или host_groups и имеет домашнюю директорию.Проблема: после перезагрузки доступы теряются.
Решение: tmux server-access не сохраняется между перезапусками tmux; настройте постоянные разрешения через host_list/host_groups в wemux.conf и автоматизируйте запуск сессий при старте системы (systemd unit).Проблема: конфликт версий tmux.
Решение: проверьте совместимость версий tmux и wemux в репозитории Wemux. При необходимости обновите tmux до поддерживаемой версии.
Мини-методология развертывания Wemux в продакшн (5 шагов)
- Подготовка окружения: выделенная VM/контейнер, обновления, SSH-контроль.
- Установка зависимостей и Wemux по инструкции выше.
- Настройка пользователей/групп: host_list, host_groups.
- Автоматизация: systemd unit для автозапуска нужных сессий и скрипты восстановления прав tmux.
- Аудит и мониторинг: включите логирование SSH/tmux, периодически проверяйте активные сессии.
Decision tree: выбрать режим доступа (Mermaid)
flowchart TD
A[Нужно только показать экран?] -->|Да| B[Только просмотр]
A -->|Нет| C[Требуется ввод от гостя?]
C -->|Да| D[Добавить гостя в host_list или host_groups]
C -->|Нет| B
D --> E[Настроить tmux server-access и проверить wemux attach]
B --> F[Ограничить права, включить аудит]Ролевые чек-листы
Хост (тот, кто делится):
- Установил wemux и tmux.
- Добавил свой логин в host_list.
- При необходимости настроил allow_server_change.
- Перед приглашением гостя выполнил tmux server-access -a
. - Контролирует активные сессии и завершает их по окончании.
Гость:
- Имеет системную учётную запись и доступ SSH.
- Знает команду для подключения: wemux m или wemux attach.
- Понимает, разрешён ли ему ввод или только просмотр.
Администратор (DevOps):
- Настроил systemd unit для автозапуска критичных сессий.
- Ввёл правила аудита и логирования.
- Ограничил доступ по группам, при необходимости настроил sudoers.
Критерии приёмки
- Wemux запускается командой wemux help и отображает справку.
- Host может успешно выполнять wemux start и приглашать гостей.
- Гость подключается по SSH и выполняет wemux attach/m без ошибок.
- Права доступа соответствуют ожиданиям (только просмотр/интерактивный ввод).
- Автоматический запуск и мониторинг сессий настроены (если требуется).
Набор команд/чек-лист (cheat sheet)
- Старт сессии хоста: wemux start
- Подключение гостя: wemux attach или wemux m
- Прекратить daemon Wemux: wemux stop
- Создать сервер/группу: wemux join
- Разрешить tmux-доступ гостю: tmux server-access -a
Короткий глоссарий
- Wemux — надстройка над tmux для мультипользовательских сессий.
- tmux — терминальный мультиплексор.
- host_list — список пользователей, которые считаются хостами и могут открывать сессии.
- host_groups — системные группы, которым можно дать права хоста.
Тестовые сценарии и приёмка
- TC-1: Установить Wemux на чистой VM, добавить host_list, запустить wemux start, подключиться гостем. Ожидаемый результат: гость видит и/или взаимодействует с сессией.
- TC-2: Попытка подключения неавторизованного пользователя должна завершаться ошибкой доступа.
- TC-3: Перезапуск системы — автоматический запуск сессий (если настроено) и сохранение прав через host_list/host_groups.
Когда Wemux может не подойти (ограничения)
- Не подходит для высокоуровневого многопользовательского контроля доступа, где требуется тонкая разграничивающая политика на уровне приложений.
- Не заменяет полноценные системы совместного доступа с во встроенным аудитом на уровне UI/UX (например, корпоративные remote collaboration platforms).
Миграция и совместимость
- Перед обновлением tmux убедитесь в совместимости с версией Wemux.
- Для критичных сред используйте тестовую ветку и прогоните тест-кейсы, описанные выше.
Заключение
Wemux — лёгкий и практичный инструмент для совместной работы в терминале, который расширяет возможности tmux и даёт гибкие сценарии использования: от демонстраций до интерактивной совместной работы. При правильной настройке пользователей, групп и политик безопасности Wemux безопасно интегрируется в рабочие процессы разработчиков и администраторов.
Ключевые действия: установите зависимости, скопируйте конфиг в /usr/local/etc, добавьте host_list/host_groups, используйте tmux server-access для временных разрешений и автоматизируйте запуск сервисов при необходимости.
Image credit: Grok via x.ai. All alterations and screenshots by Ramces Red.
Похожие материалы
Массовое изменение размера изображений на Mac
Media Creation Tool не видит USB — как исправить
Лучшие многопользовательские игры для Chromecast
Установка и удаление надстроек в Outlook
Отключить Microsoft Edge: убрать фоновые процессы