вторник, 3 сентября 2013 г.

Допиливаем напильником x11vnc для автозапуска

Решение:

1. Удаляем vino (чтобы не было проблем с занятием порта и т.п.)

sudo apt-get remove vino


2. Устанавливаем x11vnc

sudo apt-get install x11vnc

3. Делаем пароль для доступа к VNC. Тут надо быть очень внимательными вот почему. По-умолчанию VNC не использует туннель shh следовательно информация не шифруется, потому если машина для вас очень важная и критичная, надо погуглить на тему проброса VNC и его портов через туннель SSH




x11vnc -storepasswd

Пароль сохраняется в /home/ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ/.vnc/passwd (где ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ – имя пользователя, под которым вы выполнили команду). Важно выполнить эту команду не из под sudo иначе будут проблемы с правами доступа при логине.

4. Автозагрузка службы x11vnc. Очень важно (для меня) чтобы служба была уже доступна при загрузке Х т.е. пользователь еще не зашел в систему, но доступ к машине уже есть. Почему это важно? Ответ прост. В BIOS включено включение по питанию, следовательно если даже на "сервачке" пропало питание, то как только оно появится он включится сам опять и загрузится. Для этого и нужно иметь доступ уже на уровне GDM. Так же надо учесть что в Gnome3 версии Mint используется уже GDM3!!!

Редактируем файл /etc/gdm3/Init/Default (не забываем выполнить это из под root или sudo иначе не сохраните изменения)
Добавить в конец файла до exit 0 следующую строку:

## /usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ/.vnc/passwd ##(  #одной строкой# )

Из ключевых параметров стоит обратить внимание на следующие:
-dontdisconnect - не отключать при простоях, что важно если свернули окно сессии
-forever - очень важный параметр. Без него x11vnc после завершения сеанса выключается и больше вы не зайдете пока по ssh опять не запустите его, что не удобно.
-rfbport - указываем на каком порту будет работать наш VNC

Далее сохраняем файл и перегружаем машину.

В некоторых статьях попадается что эту же строку надо добавить в файл /etc/gdm/gdm.conf-custom но его в Mint нет, но все работает и так. Я так понимаю с GDM3 его просто выкинули.