Когда работаешь в техподдежрке в компании со штатом более ста человек, очень быстро отвыкаешь от индивидуального подхода (в прямом смысле 8)) к каждому пользователю. Основными рабочими инструментами становятся Radmin, vnc и службы удаленного рабочего стола windows.
Именно после такой работы я начал плотно заниматься переводом пользователей на linux, и первым делом встал вопрос о системах удаленного управления рабочим столом в этой операционной системе.
Я не буду рассказывать о том, каким тернистым путем я шел, ведя борьбу с различными программами на счет автозапуска, подключения к текущей сессии пользователя и тд и тп.
Расскажу только о конечном результате.
Сейчас я использую x11vnc. Основным дистрибутивом является openSUSE 12.1. Сначала устанавливаем сервер:
zypper in x11vnc
После установки можно настроить сервер из графической оболочки, но мне это сделать не удалось.
Поиски в гугле и чтение манов дали ответ:
x11vnc -display :0 -shared -forever -auth guess&
Так выглядит строка запуска сервера vnc для того, чтобы подключаться к запущенному графическому серверу. Особо отмечу параметры запуска : -auth guess разрешает подключение без какой-либо аутентификации, то есть не требуется ни подтверждение пользователя, ни указание пароля, любой может получить полный доступ к сессии пользователя просто обратившись к компьютеру по IP адресу или имени используя vnc.
В моей компании подобная ситуация допустима и искать более подходящие параметры я не стал. Добавил команду в автозагрузку создав скрипт /etc/init.d/x11vnc
#!/bin/bash
x11vnc -display :0 -shared -forever -auth guess&
сделал его исполняемым (chmod +x /etc/init.d/x11vnc) и добавив в запуск на 5 уровне исполнения (ln -s /etc/init.d/x11vnc /etc/init.d/rc5.d/S12x11vnc).
Все прекрасно работает, казалось бы можно просто работать, но...
В наличии имеется довольно много старых компьютеров, которые openSUSE с KDE просто не вывезут. На них я обычно устанавливаю XFCE, хотя в последнее время стал склоняться к использованию Xubuntu 12.04. С XFCE используется диспетчер lightwm.
Так вот, при выполнении указанной выше команды получаем следующую картину:
27/02/2013 17:38:53 x11vnc version: 0.9.12 lastmod: 2010-09-09 pid: 2149
xauth: file /root/.Xauthority does not exist
/tmp/fd.0RDwcb: 305: [: -a: unexpected operator
/tmp/fd.0RDwcb: 305: [: -a: unexpected operator
27/02/2013 17:38:53 -auth guess: failed for display=':0'
27/02/2013 17:38:53 -auth guess: since we are root, retrying with FD_XDM=1
/tmp/fd.7U6gp4: 305: [: -a: unexpected operator
/tmp/fd.7U6gp4: 305: [: -a: unexpected operator
27/02/2013 17:38:54 -auth guess: failed for display=':0'
Вывод ошибок и Гугл многое говорят о возможности исправления ошибок, но я выбрал наиболее простой, как мне кажется, способ.
x11vnc -storepasswd /home/.vncpasswd
Enter VNC password:
Создаем файл с шифрованным паролем для доступа. Затем меняем наш скрипт /etc/init.d/x11vnc:
#!/bin/bash
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/.vncpasswd
Дальше добавляем его в автозапуск как описано выше. Параметр -rfbauth /home/.vncpasswd указывает серверу x11vnc использовать созданный ранее файл с паролем. Указание запущенного экземпляра дисплейного менеджера -auth /var/run/lightdm/root/:0 необходимо, без него сервер x11vnc в XFCE просто не стартует. Остальные опции желательны, так как при работе без их указания наблюдаются многочисленные проблемы - не срабатывает запуск, сервер отваливается после отключения клиента, и др.
Все действия описаны для openSUSE, отличие от Xubuntu только в добавлении скрипта в автозагрузку. Там это делается командой update-rc.d x11vnc defaults 99 после создания файла x11vnc в директории /etc/init.d/.
После всех процедур получаем компьютер, к которому в любой момент можно подключиться по vnc и оказать помощь пользователю.
Именно после такой работы я начал плотно заниматься переводом пользователей на linux, и первым делом встал вопрос о системах удаленного управления рабочим столом в этой операционной системе.
Я не буду рассказывать о том, каким тернистым путем я шел, ведя борьбу с различными программами на счет автозапуска, подключения к текущей сессии пользователя и тд и тп.
Расскажу только о конечном результате.
Сейчас я использую x11vnc. Основным дистрибутивом является openSUSE 12.1. Сначала устанавливаем сервер:
zypper in x11vnc
После установки можно настроить сервер из графической оболочки, но мне это сделать не удалось.
Поиски в гугле и чтение манов дали ответ:
x11vnc -display :0 -shared -forever -auth guess&
Так выглядит строка запуска сервера vnc для того, чтобы подключаться к запущенному графическому серверу. Особо отмечу параметры запуска : -auth guess разрешает подключение без какой-либо аутентификации, то есть не требуется ни подтверждение пользователя, ни указание пароля, любой может получить полный доступ к сессии пользователя просто обратившись к компьютеру по IP адресу или имени используя vnc.
В моей компании подобная ситуация допустима и искать более подходящие параметры я не стал. Добавил команду в автозагрузку создав скрипт /etc/init.d/x11vnc
#!/bin/bash
x11vnc -display :0 -shared -forever -auth guess&
сделал его исполняемым (chmod +x /etc/init.d/x11vnc) и добавив в запуск на 5 уровне исполнения (ln -s /etc/init.d/x11vnc /etc/init.d/rc5.d/S12x11vnc).
Все прекрасно работает, казалось бы можно просто работать, но...
В наличии имеется довольно много старых компьютеров, которые openSUSE с KDE просто не вывезут. На них я обычно устанавливаю XFCE, хотя в последнее время стал склоняться к использованию Xubuntu 12.04. С XFCE используется диспетчер lightwm.
Так вот, при выполнении указанной выше команды получаем следующую картину:
27/02/2013 17:38:53 x11vnc version: 0.9.12 lastmod: 2010-09-09 pid: 2149
xauth: file /root/.Xauthority does not exist
/tmp/fd.0RDwcb: 305: [: -a: unexpected operator
/tmp/fd.0RDwcb: 305: [: -a: unexpected operator
27/02/2013 17:38:53 -auth guess: failed for display=':0'
27/02/2013 17:38:53 -auth guess: since we are root, retrying with FD_XDM=1
/tmp/fd.7U6gp4: 305: [: -a: unexpected operator
/tmp/fd.7U6gp4: 305: [: -a: unexpected operator
27/02/2013 17:38:54 -auth guess: failed for display=':0'
Вывод ошибок и Гугл многое говорят о возможности исправления ошибок, но я выбрал наиболее простой, как мне кажется, способ.
x11vnc -storepasswd /home/.vncpasswd
Enter VNC password:
Создаем файл с шифрованным паролем для доступа. Затем меняем наш скрипт /etc/init.d/x11vnc:
#!/bin/bash
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/.vncpasswd
Дальше добавляем его в автозапуск как описано выше. Параметр -rfbauth /home/.vncpasswd указывает серверу x11vnc использовать созданный ранее файл с паролем. Указание запущенного экземпляра дисплейного менеджера -auth /var/run/lightdm/root/:0 необходимо, без него сервер x11vnc в XFCE просто не стартует. Остальные опции желательны, так как при работе без их указания наблюдаются многочисленные проблемы - не срабатывает запуск, сервер отваливается после отключения клиента, и др.
Все действия описаны для openSUSE, отличие от Xubuntu только в добавлении скрипта в автозагрузку. Там это делается командой update-rc.d x11vnc defaults 99 после создания файла x11vnc в директории /etc/init.d/.
После всех процедур получаем компьютер, к которому в любой момент можно подключиться по vnc и оказать помощь пользователю.