вторник, 26 января 2016 г.

Удаленный доступ к LTSP FAT-клиенту

Исходные данные: 
Xubuntu 14.04 (32-LTSP-client и сервер 64 разряда).


Дано: LTSP-Сервер к которому подключено примерно 150 бездисковых станций по принципу fat-client. Нужно обеспечить доступ к экрану-мышке-клавиатуре для оказания помощи сотрудникам. Исторически сложилось что везде применяется 12-й экран, а не 7-й, как это принято по умолчанию. Попытка сделать "стандартным способом" успехом не увенчалась. Наиболее разумные идеи отыскались в единственном месте. Там же есть ссылки на более ранние варианты. Собственно проблема в том, что при завершении сессии без перезагрузки остается старый файл авторизации /var/run/ldm-xxx/Xauthority и при появлении приглашения ldm там же появляется новый файл /var/run/ldm-yyy/Xauthority. Нужно как-то "перецепить" x11vnc на новый файл. Рецепт получился вот такой.

  • Чрутимся внутрь образа и ставим x11vnc.

ltsp-chroot -m
apt-get install x11vnc

  • Устанавливаем пароль

x11vnc -storepasswd /etc/x11vnc.pass

  • Создаем 2 скрипта:

/usr/share/ldm/rc.d/I99-x11vnc

# /opt/ltsp/i386/usr/share/ldm/rc.d/I99-x11vnc
# LDM Script to start x11vnc

XAUTH=""
  for i in /var/run/ldm-*
    do 
      if [ -z $XAUTH ] ; then  XAUTH=$i
      fi
      if [ $XAUTH/Xauthority -ot $i/Xauthority ] ; then XAUTH=$i
      fi
    done
XAUTH=$XAUTH/Xauthority
start-stop-daemon --start --oknodo --pidfile /var/run/x11vnc.pid --background --nicelevel 15 --make-pidfile --exec /usr/bin/x11vnc -- -display :12 -loop -rfbauth /etc/x11vnc.pass -nossl -logfile /var/log/x11vnc -auth $XAUTH

И /usr/share/ldm/rc.d/X99-x11vnc

# /opt/ltsp/i386/usr/share/ldm/rc.d/X99-x11vnc
# LDM Script to stop x11vnc

start-stop-daemon --stop --oknodo --pidfile /var/run/x11vnc.pid
  • Выходим из чрута и пересобираем образ
ltsp-update-image
  • Все, можно пробовать (порт 5900).
И замечание в конце. В файле /var/lib/tftpboot/lts.conf обнаружилось вот что (см. последнюю строчку). Сделано было очень давно (4 декабря 2015) и с тех пор ничего не менялось. Очень может быть, что можно x11vnc из списка удалить (его ldm запускает), просто не проверял.

# /var/lib/tftpboot/ltsp/i386/lts.conf 
#

[Default]
NFS_HOME=/home
NBD_SWAP=True
SERVER=10.0.0.4
SYSLOG_HOST=10.0.0.4
SOUND=True
LDM_SESSION=startxfce4
LDM_THEME="okgvv2"
KEEP_SYSTEM_SERVICES="cups x11vnc"