Forcecommand дает странные результаты с Tmux

Я пытаюсь настроить сопряжение с tmux (специально для wemux). Я настроил пару пользователей в моей системе и могу соединить ssh в пару и подключиться к сеансу tmux вручную. Однако, когда я установил Forcecommand в блоке Match для автоматического подключения к tmux при входе в систему, он не может сказать, что нет сеанса tmux для подключения.

Разрешения установлены на 777 на сокете.

Я на OsX Mountain Lion, если это поможет.

Есть идеи?

1 ответ

Решение

Если другой участник использует другую учетную запись пользователя, вам необходимо указать путь к сокету, к которому вы хотите подключиться, с помощью -S /path/to/some/socket флаг. Этот же флаг можно указать при создании сервера tmux.

Это связано с тем, что если вы не укажете путь к сокету вручную, для сокета по умолчанию будет указано /tmp/tmux-[USER ID]/default как вы можете видеть в исходном коде tmux. Это означает, что это отличается для каждой учетной записи пользователя.

Совет: вам не следует устанавливать сокет на 777, так как это позволяет любому пользователю системы подключаться к сеансам в ней и выполнять команды в выполняющейся оболочке. Это, скорее всего, вызывает серьезную дыру в безопасности.

Одной из идей иметь простую настройку было бы создание группы, содержащей всех пользователей, которым разрешено присоединяться к серверу tmux, и установить ее в качестве группы-владельца сокета при установке режима на 770.

Другие вопросы по тегам