Страница 1 из 1

Про teamviewer

Добавлено: 14.12.2015 12:10
dimbor
Захотелось тута под Новый год сотворить какое-нить бессмысленное и беспощадное доброе дело. Конечно же путем написания поучений, о которых никто нифига не просил. Речь пойдет о эникейном сисадминстве, сидючи под линуксом. Мы конечно тут усе такие красивые и с открытыми исходниками, но иногда от использования проприетари никуда не деться.

Последнее время слишком часто приходится использовать обозначенный teamviewer для удовлетворения различных теть-маш. Самой удобной получилась схема: "Зайдите на сайт teamviewer.com - скачайте - запустите - скажите id и пароль - не думайте ни о чем." Большой плюс также состоит в необязательности публичного ip-адреса у абонента - все через сторонний сервер и нахаляву, заметим.

Соответственно, под линукс сей продукт имеется. Он бодро функционирует под само-притащенным вайном. Т.е. подключаться к людям я могу. А вот подключаться ко мне совсем не надо даже и пытаться. Меж тем, вьюер последних версий напрочь отказывается работать без запущенного демона teamveiwerd. Демона, проприетарного, от рута запущенного, постоянно висящего. Упс - там еще ключи от квартиры надо положить для полного счастья. Паранойя негодуе.

Но жить как-то надо все же. Решено, исходя из стыдливой оговорки "один раз не это самое", подпереть тревожность костылем на баше. Пусть уж раз нужен ему рут, этот рут там будет, только когда я его использую.

Костыль состоит из двух частей. Первая - файлик tv в /etc/sudoers.d:

Код: Выделить всё

%users   ALL= NOPASSWD: /bin/systemctl * teamviewerd.service


А запускать вьюер надо через /usr/local/bin/tv_wd:

Код: Выделить всё

#!/bin/bash

daemon_bin="teamviewerd"
tv_bin="TeamViewer.exe"

proc_pids() {
    echo "$(ps -o pid= -C $1)"
}

d_ctl() {
    sudo /bin/systemctl $1 "$daemon_bin".service >/dev/null 2>&1
    echo $?
}

[ -n "$(proc_pids $tv_bin)" ] && exit # could be only one instance
[ $(d_ctl status) -ne 0 ] && d_ctl start >/dev/null 2>&1
sleep 1
/opt/teamviewer/tv_bin/script/teamviewer >/dev/null 2>&1 &
while true; do
    sleep 10
    if [ -z "$(proc_pids $tv_bin)" ]; then
        d_ctl stop >/dev/null 2>&1
        break;
    fi
done


Получилась сторожилка демона: запускаем сервис, запускаем вьюер, пока есть процесс вьюера, демон не завершаем - караулим.
/Еще конечно не забыть от рута отменить запуск демона при загрузке системы./

P.S. Не, ну понятно, что для полной контрацепции такую вещь в отдельной виртуалке надо запускать. Но вроде как эти ребята еще не замечены в гадостях. Значит пока такой баланс доверия.

Re: Про teamviewer

Добавлено: 14.12.2015 14:22
SLEDopit
dimbor писал(а):
14.12.2015 12:10
Но вроде как эти ребята еще не замечены в гадостях.
Так при таком подходе когда заметят уже поздно будет (:

Re: Про teamviewer

Добавлено: 14.12.2015 15:03
dimbor
За оценку рисков. Что такое они могут взять у меня, мелочи пузатой, что было бы дороже их репутации, ума не приложу. Опять же вероятность попасть именно в меня весьма маленькая. Опять же, повторяю: не ловлены. Для противопоставления имеются барыги из мелкософта с многочисленными скандалами с перс. данными и телеметрией. Несмотря на это жуткие миллионы человеков их продукцией пользоваться почему-то не перестают и вроде как ущерба не ощущают.

Да, а какой подход то быть должон?

Re: Про teamviewer

Добавлено: 14.12.2015 15:30
Bedazzled
не в тему...но думаю комуто пригодится...
я так и не смог освоять teamviewer под линукс, и перешол на x11vnc+repeater (как мне кажется и работает шустрее) , для win клиентов chunkvnc(ultravnc), он написан на autoit напихал туда своих опций как сумел пока терпимо:) .

Re: Про teamviewer

Добавлено: 14.12.2015 15:43
SLEDopit
dimbor писал(а):
14.12.2015 15:03
Да, а какой подход то быть должон?
Ну вы уже сами упоминали, в виртуалке запускать. Ну или хотя бы в chroot.

dimbor писал(а):
14.12.2015 15:03
Несмотря на это жуткие миллионы человеков их продукцией пользоваться почему-то не перестают и вроде как ущерба не ощущают.
В безопасности идея в том, чтобы не подвергать себя излишнему риску без крайней необходимости.
Этот как перебегать дорогу на красный свет. Если внимательно осмотреться, то вероятность быть сбитым не такая большая. Но зачем?

Re: Про teamviewer

Добавлено: 14.12.2015 16:35
dimbor
SLEDopit писал(а):
14.12.2015 15:43
Ну вы уже сами упоминали, в виртуалке запускать. Ну или хотя бы в chroot.

О - чрут! Спасибо, про него я как-то и запамятовал. Подумаю эту мысль и дополню описание здесь, если что получится.

Виртуалку давать, по честному, давит жаба, да и на xen по пути remote - X - sdl/vnc - X с графикой норовят произойти артефакты, тормозит опять же больше.

Bedazzled писал(а):
14.12.2015 15:30
x11vnc+repeater (как мне кажется и работает шустрее) , для win клиентов chunkvnc(ultravnc)


Идея хороша, если на винде удалось добиться схемы "тети-маши". Вот только vnc по субьективной тормознутости на узких каналах занимает почетное второе место (на первом - ssh -X).

Re: Про teamviewer

Добавлено: 14.12.2015 16:50
Bedazzled
"тети-маши" это как я понимаю скачал файл и сказал id , то тогда да тут именно так:) . Когда на win будет и ssh и -X и обязательно испробую:)

Re: Про teamviewer

Добавлено: 14.12.2015 17:31
frost42
А ещё можно просто скачать TeamViewer tar.gz, распаковать и запускать из каталога teamviewer/tv_bin без уcтановки и предварительных танцев.

Re: Про teamviewer

Добавлено: 14.12.2015 20:05
eddy
Зачем тащить эту дрянь, если к мастдайке можно через обычный vnc подключаться? Безо всякой дряни вроде wine... Не понимаю людей, которые wine пользуются. Ну, если ты так огорожен, скачай себе с торрентов мастдайку - не насилуй себя!

Re: Про teamviewer

Добавлено: 14.12.2015 21:48
dimbor
eddy писал(а):
14.12.2015 20:05
Зачем тащить эту дрянь, если к мастдайке можно через обычный vnc подключаться? Безо всякой дряни вроде wine... Не понимаю людей, которые wine пользуются.


Да и через rdp тоже можно. А если за мастдайкой сидит профессор информатики, вообще бездна возможностей открывается.
Вот так, писал-объяснял, почему используется именно данная тулза. И почему vnc немного не то. А тут такой риторический вопросец. Да все оно понятно, что там дрянь и сям - тоже дрянь. И вся жизнь, меж прочим, тоже последнее время по консистенции далеко не фиалки. Тема внезапно заведена не для дачи качественных оценок используемому инструменту, а для заточки оного инструмента.

2Bedazzled: Не затруднит выложить куда-нить (сюда?) вашу сборку "chunkvnc(ultravnc), он написан на autoit напихал туда своих опций как сумел"?

Re: Про teamviewer

Добавлено: 14.12.2015 22:12
dimbor
Ну и еще - гулять, так гулять. Сегодня узнал о существовании репитера к vnc. А вот вопрос: в линуксовых реализациях rdp уделено внимание наличию в виндах галки типа "Пригласить удаленного помощника" или это страшная мелкомягкая тайна?
Оно бы тоже решило наверное.

Re: Про teamviewer

Добавлено: 15.12.2015 02:55
Bedazzled
2dimbor

оригинал ChunkVNC_3_3_1
x11vnc + repeater
мои файлы распаковать в папку \ChunkVNC_3_3_1\SRC
там конечто в исходниках ужасть полный, так как только учусь autoit :)

список доработок:
Spoiler

+ultravnc заменен на последнию версию (если будут проблемы при сборке используйте ту что в оригинале)
+ настройки работают, теперь можно менять ip и порт , служба должна быть установленна
+ добавленна функция SwitchSpreadingKeyboard
должна решить проблему связанную с раскладкой клавиатуры.
+добавленна установка mirrordriver (взят тут ) /в папке это файл vnc_drv.exe
+ при запуске программы она проверяет связь с сервером (repeater) и вслучае потери связи выдаёт ошибку. но не закрывается теперь сама.
+ добавленна опция включения\отключения caps lock (а то есть любители)
+добавлено опция сделать снимок экрана.
+можно скачать самую последнию версию прямо из уже имеющейся программы:
> Справка > Cкачать последнию версию.
+много мелочевки

Re: Про teamviewer

Добавлено: 15.12.2015 09:08
eddy
dimbor писал(а):
14.12.2015 22:12
А вот вопрос: в линуксовых реализациях rdp уделено внимание наличию в виндах галки типа "Пригласить удаленного помощника" или это страшная мелкомягкая тайна?

Открыть jabber и передать человеку свой IP + пароль VNC-сервера. Все.
А вот был бы в мастдайке нормальный ssh с человеческим башем, таких извращений не нужно было бы!

dimbor писал(а):
14.12.2015 21:48
А если за мастдайкой сидит профессор информатики, вообще бездна возможностей открывается.

Как подсказывает опыт, обычно "профессора информатики" в этой самой информатике — абсолютные нули!

Re: Про teamviewer

Добавлено: 25.12.2015 06:50
Bedazzled
x11vnc portableversion (через repeater)

скрипт

Код: Выделить всё

#!/bin/sh
ID=`shuf -i 100000-999999 -n 1`
zenity --info --title="HELPDESK" --text="скажите ваш ID "$ID &
./x11vnc -connect repeater=ID:$ID+192.192.168.168:5509 -solid -ultrafilexfer -speeds dsl


скрипт и файл x11vnc ложим в одну папку,создаем архив и отпровляем клиенту.
Клиент ее разархивирует, нажмет на скрипт правой кнопкой мыши поставит галочку "Разрешить запуск этого файла в качестве программы",и потом запустит скрипт кликая мышкой, скажет вам свой ID и вы кнему подключитесь:)

тестировалось на ubuntu11.04 котороя находится в деревне с очень плохим инетом, работает быстрее teamviewer :)

Re: Про teamviewer

Добавлено: 23.01.2016 11:50
ShotSDV
Возможно, что я ошибаюсь, но, насколько я помню, если в конторе стоит шлюз, то к VNC снаружи не прицепиться, если не пробросить порты до компа клиента. Иными словами, VNC сам себя не умеет выставлять наружу. Или уже научился?

Re: Про teamviewer

Добавлено: 23.01.2016 13:21
Bizdelnick
ShotSDV писал(а):
23.01.2016 11:50
VNC сам себя не умеет выставлять наружу. Или уже научился?

Конечно не умеет. И не надо. Он должен принимать соединения только с локалхоста, а все внешние подключения — исключительно через SSH-туннель.

Re: Про teamviewer

Добавлено: 24.01.2016 11:41
Bedazzled
2 'ShotSDV'
поэтому используется репитер http://www.uvnc.com/products/uvnc-repeater.html

Re: Про teamviewer

Добавлено: 27.02.2018 00:08
dimbor
А кое-кто (я) продолжает грызть этот кактус. Вылупился 13 TeamViewer (г. редкое). При закрытии окошка норовит загнаться в трей - процесс не завершается. Как следствие, скрыпт из шапки не отрабатывает.

Ниже вариант, где ловим закрытие окна по заголовку, а не pid процесса. Корявенько переписано, но теперь пашет:

Код: Выделить всё

#!/bin/bash

daemon_bin="teamviewerd"
tv_bin="TeamViewer"

wnd_pid() {
    echo "$(wmctrl -l -p | awk -v tv="$1" '{if($5~tv) {print($3)}}')"
}

d_ctl() {
    sudo /bin/systemctl $1 "$daemon_bin".service >/dev/null 2>&1
    echo $?
}

[ -n "$(wnd_pid $tv_bin)" ] && exit # could be only one instance
[ $(d_ctl status) -ne 0 ] && d_ctl start >/dev/null 2>&1
sleep 1
/opt/teamviewer/tv_bin/script/teamviewer >/dev/null 2>&1 &
while true; do
    sleep 10
    tvp0="$tvp"
    tvp="$(wnd_pid $tv_bin)"
    if [ -z "$tvp" ]; then
        kill "$tvp0" >/dev/null 2>&1
        d_ctl stop >/dev/null 2>&1
        break;
    fi
done


ЗЫ: Тулза wmctrl уже и не помню, откуда под мой xfce приблудилась. Выдает список открытых окон с пидами и заголовками. Еще можно xdotool, да тыщи их...