Гид по технологиям

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

7 min read DevOps Обновлено 03 Dec 2025
Как установить и настроить Wemux для совместной работы
Как установить и настроить Wemux для совместной работы

Программист за работой за компьютером.

Wemux — это надстройка над tmux, позволяющая нескольким пользователям подключаться к одной или нескольким сессиям tmux и работать совместно или только наблюдать. Wemux добавляет удобные роли (host/guest), управляет привилегиями доступа и упрощает запуск разделяемых терминалов по SSH.

Что такое tmux и Wemux (в 1 строке)

  • tmux — терминальный мультиплексор: позволяет хранить несколько окон и сессий в одном терминале.
  • Wemux — набор скриптов и конфигураций, расширяющий tmux для мультипользовательской работы в реальном времени.

Основные сценарии использования

  • Быстрый совместный дебаг и код-ревью по SSH.
  • Публичные демонстрации, где один хост показывает и/или даёт интерактивный доступ гостям.
  • Разделение рабочих групп по проектам (несколько независимых серверов Wemux).

Установка Wemux на Linux

Ниже — проверенная и исправленная последовательность команд для Debian/Ubuntu-подобных систем. Перед началом убедитесь, что у вас есть права sudo.

  1. Обновите систему:
sudo apt update && sudo apt upgrade -y
  1. Установите зависимости (обратите внимание на пробелы в командах):
sudo apt install git tmux ssh
  1. Склонируйте репозиторий Wemux в домашнюю директорию:
cd ~
git clone https://github.com/zolrath/wemux.git
  1. Скопируйте папку проекта в общую системную директорию (пример — /usr/local/share):
sudo cp -rv ~/wemux /usr/local/share
  1. Создайте символическую ссылку, чтобы команда wemux была в PATH:
cd /usr/local/share
sudo ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux

Создание символической ссылки для Wemux.

  1. Скопируйте пример конфигурации в /usr/local/etc и при необходимости отредактируйте:
sudo cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf
  1. Перезапустите или обновите текущую оболочку и проверьте установку:
hash -r
wemux help

Экран помощи Wemux по умолчанию.

Важно: если у вас используется дистрибутив без /usr/local/etc в PATH или без прав на запись, скорректируйте директории в соответствии с политиками вашей системы.

Первый запуск и настройка хоста

Wemux слушает команды только от пользователей, перечисленных в конфигурации. По умолчанию переменная host_list пуста — вам нужно явно указать пользователя-хоста.

  1. Откройте конфиг:
sudo nano /usr/local/etc/wemux.conf
  1. В разделе HOST OPTIONS найдите строку host_list и задайте значение:
host_list=("ваш_логин")

Подсказка: узнать текущий пользователь можно командой whoami.

Подсветка переменной host_list в конфигурации Wemux.

  1. Чтобы разрешить запуск нескольких независимых серверов на одной машине, в разделе MULTI-HOST OPTIONS включите allow_server_change, удалив символ # в начале строки:
allow_server_change=true

Разрешение allow_server_change в конфигурации Wemux.

  1. Сохраните файл и протестируйте создание сессии:
wemux start

Wemux работает в Ubuntu Linux.

Если команда не запускается, проверьте права на /usr/local/bin/wemux и синтаксис файла wemux.conf.

Как гости подключаются к разделяемой сессии

Типичный поток: гость подключается по SSH к машине, где запущен wemux, и использует роль guest для подсоединения.

  1. Создайте системного пользователя для гостя (пример — alice):
sudo adduser alice
  1. Убедитесь, что у пользователя есть домашняя директория:
ls -l /home

Создание гостевого пользователя для Wemux.

  1. На стороне хоста выдайте доступ tmux server-access для гостя (эта команда не сохраняется между перезагрузками сервера tmux):
tmux server-access -a alice

Эта команда устанавливает разрешение ядра tmux на подключение указанного пользователя.

Команда tmux server-access для разрешения доступа гостю.

  1. Как гость: подключитесь по SSH и выполните:
wemux m

Это подключит вас к основной сессии хоста в режиме просмотра или взаимодействия в зависимости от конфигурации.

Гость подключается к удалённой машине Wemux.

Совет: если гостю нужен постоянный доступ без повторного изменения server-access, настройте системные группы или автоматизацию (см. раздел о группах ниже).

Разрешение интерактивного совместного редактирования

По умолчанию гости могут только смотреть. Чтобы разрешить им взаимодействовать:

  1. Отделитесь от текущей сессии (на хосте): Ctrl+B, затем D.
  2. Остановите демона Wemux:
wemux stop
  1. Откройте конфиг и добавьте имя пользователя или группу в host_list/host_groups:
sudo nano /usr/local/etc/wemux.conf
# пример
guest_list=("alice","bob")
host_groups=("devops")
  1. Сохраните и перезапустите сессию:
wemux start

host_list с двумя пользователями в конфиге.

  1. Для подключения гость использует команду:
wemux attach

Гость имеет права редактирования в совместной сессии.

Управление несколькими серверами Wemux

Wemux поддерживает создание независимых групп-серверов (например, для разных проектов).

  1. На хосте создайте и запустите новую группу:
wemux join my-new-project
wemux start
  1. На гостевой учётной записи подключитесь к той же группе:
wemux join my-new-project
wemux attach

Гость подключается к новому серверу Wemux.

Это позволяет изолировать сессии между командами и проектами.

Безопасность и лучшие практики

  • Убедитесь, что 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 шагов)

  1. Подготовка окружения: выделенная VM/контейнер, обновления, SSH-контроль.
  2. Установка зависимостей и Wemux по инструкции выше.
  3. Настройка пользователей/групп: host_list, host_groups.
  4. Автоматизация: systemd unit для автозапуска нужных сессий и скрипты восстановления прав tmux.
  5. Аудит и мониторинг: включите логирование 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Массовое изменение размера изображений на Mac
Mac

Массовое изменение размера изображений на Mac

Media Creation Tool не видит USB — как исправить
Windows

Media Creation Tool не видит USB — как исправить

Лучшие многопользовательские игры для Chromecast
Гайды

Лучшие многопользовательские игры для Chromecast

Установка и удаление надстроек в Outlook
Руководство

Установка и удаление надстроек в Outlook

Отключить Microsoft Edge: убрать фоновые процессы
Windows

Отключить Microsoft Edge: убрать фоновые процессы

Как продавать шаблоны Canva на Etsy
E-Commerce

Как продавать шаблоны Canva на Etsy