Что: 5f98503b78f5aa80bd48f4633ce82e9a219ed7e6 Когда: 2016-10-27 22:48:07+03:00 ------------------------------------------------------------------------ Темы: tmux ------------------------------------------------------------------------ Парное/групповое программирование и удалённый read-only доступ На работе практикуется парное программирование. Но вместо того, чтобы сидеть рядом с человеком и заставлять и его и себя сидеть неудобно, мы удалённо подключаемся к нему и смотрим на своём компьютере в его экран. Так как любой уважающий себя разработчик, не связанный с паршивыми технологиями требующими GUI, сидит за текстовым терминалом, то задача показа его экрана выполняется очень просто и эффективно за счёт tmux. Заводим отдельного пользователя под которым будут входить удалённые пользователи, например с именем arbeit. В его .ssh/authorized_keys добавляем ключи коллег и ограничения с автоматическим подключением к рабочей сессии tmux: restrict,pty,command="/usr/local/bin/tmux -S /tmp/arbeit.sock attach-session -r" ssh-ed25519 ... collegue@arbeit.com Запускаем свою рабочую сессию в демоне на отдельном сокете: tmux -S /tmp/arbeit.sock new-session -d -s arbeit tmux -S /tmp/arbeit.sock new-window -t ... tmux -S /tmp/arbeit.sock attach-session -t arbeit chgrp arbeit /tmp/arbeit.sock Теперь все подключающиеся (причём с шифрованием и аутентификацией по OpenSSH) не имеют никаких прав и сразу же в режиме чтения подключаются к общей сессии. В FreeBSD нужно не забыть указать что терминал вполне себе UTF-8: arbeit% cat ~/.login_conf me:\ :charset=UTF-8:\ :lang=en_EN.UTF-8: Но, бывают непотребства в виде необходимости парно посмотреть на что-то в броузере. Так как это GUI, то всё сильно портится, но более менее возможность работать выходит за счёт x11vnc: x11vnc -display :0 -no6 -viewonly -forever -shared -ncache xwininfo ; x11vnc -display :0 -no6 -viewonly -forever -shared -ncache -id WindowID Это даёт read-only доступ многочисленным подключениям и не выходит когда все отключились. -no6 полезна тем, что если firewall не защищает от подключений извне, то чтобы по IPv6 порт с сессией не стал доступен общественности. -ncache включает, так называемое, кэширование. Это выделение в 10 раз большего пространства видеопамяти которая кэширует предыдущие состояния (например переключениям между окнами) изображения, а дальше посылает команды копирования прямоугольных областей, вместо их полной отрисовки. Это жрёт память неплохо (счёт на сотни мегабайт), но существенно повышает производительность отрисовки. Но, стоит помнить что vncviewer-у можно сказать чтобы он ещё и сжимал трафик. Это очень помогает и буквально в разы (хотя достаточно было бы RLE сжатия) уменьшает объёмы трафика, так как zlib на современном железе в real-time вполне себе справится и сожмёт хорошо. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9F%D0%B0%D1%80%D0%BD%D0%BE%D0%B5%2F%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D0%BE%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D1%83%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20read-only%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%285f98503b78f5aa80bd48f4633ce82e9a219ed7e6%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0