quarta-feira, 16 de janeiro de 2013

Instalar VNC Server x11vnc no Debian - Ubuntu

No nosso caso usamos o Debian Wheezy Netinstall mas poderá usar para as outras distribuições "Like Debian".
Vamos ao que interessa:

Primeiramente vamos instalar o pacote necessario para execução do Servidor Vnc
No bash digite o comando:


apt-get install x11vnc



Agora vamos configurar o arquivo que armazena a senha de acesso do servidor Vnc


Crie o Diretorio para armazenar o arquivo de senha

mkdir -p /etc/x11vnc



Crie o arquivo de senha dentro de /etc/x11vnc/

touch /etc/x11vnc/vncpasswd



Crie uma senha e armazene dentro do arquivo criado:

x11vnc -storepasswd suasenha /etc/x11vnc/vncpasswd



Crie um arquivo para armazenar o script de inicialização do Servidor Vnc x11vnc

touch /etc/init.d/x11vnc-init


Dê permissão de execução para o script

chmod +x /etc/init.d/x11vnc-init


Copie o conteudo do script abaixo e cole dentro do arquivo "/etc/init.d/x11vnc-init"

#!/bin/bash
# --------------------------------
# /etc/init.d/x11vnc
# --------------------------------

# find xauthority file
find_xauth () {
  FOUND=0
  RETRIES=4
  [ -z "$1" ] || RETRIES="$1"

  [ -e "/var/lib/kdm/" ] &&
     XAUTHFILE_KDM=`find /var/lib/kdm/ -iname "A\:0-*"`
  [ -e "/var/run/xauth/" ] &&
     XAUTHFILE_KDM2=`find /var/run/xauth/ -iname "A\:0-*"`
  [ -e "/var/lib/xdm/authdir/authfiles/" ] &&
     XAUTHFILE_XDM=`find /var/lib/xdm/authdir/authfiles/ -iname "A\:0-*"`
  [ -e "/var/lib/gdm/" ] &&
     XAUTHFILE_GDM=`find /var/lib/gdm/ -iname *Xauth*`

  [ -f "$XAUTHFILE_KDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_KDM"
  [ -f "$XAUTHFILE_KDM2" ] && FOUND=1 && XAUTHORITY="$XAUTHFILE_KDM2"
  [ -f "$XAUTHFILE_XDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_XDM"
  [ -f "$XAUTHFILE_GDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_GDM"

  if [ "$FOUND" -eq "0" ]; then
    if [ "$RETRIES" -gt "0" ]; then
      let "RETRIES-=1"
      find_xauth "$RETRIES"
    else
      echo "carregamento FALHOU (nao foi possivel encontrar uma maneira para me autenticar com o Servidor X)" >>/var/log/x11vnc.log
      exit -1
    fi
  else
    echo "Encontrado o arquivo de autenticacao ($XAUTHORITY)" >>/var/log/x11vnc.log
  fi
}

START_COMMAND="x11vnc"
X11VNC_PARAMS="-ncache -noxrecord -noxfixes -display :0 -noxdamage  -forever -bg"

case "$1" in
  start)

    if [ ! -f /etc/x11vnc/vncpasswd ]; then
      echo " carregamento FALHOU (arquivo '/etc/x11vnc/vncpasswd' nao encontrado)" >>/var/log/x11vnc.log
      echo "   Crie a senha manualmente digitando o comando: x11vnc -storepasswd suasenha /etc/x11vnc/vncpasswd " >>/var/log/x11vnc.log
      exit -1;
    fi

    #su -c "$COMMAND" -l x11vnc &
    if [ $X11VNC_X11 = 1 ]; then
      find_xauth
      START_COMMAND="$START_COMMAND -auth $XAUTHORITY $X11VNC_PARAMS"
    else
      START_COMMAND="$START_COMMAND $X11VNC_PARAMS"
    fi
    OUTPUT=`$START_COMMAND`
    echo "$START_COMMAND" >>/var/log/x11vnc.log
    echo "$OUTPUT" >>/var/log/x11vnc.log
  ;;
  stop)
    pid=`pidof x11vnc`
    if [ -z "$pid" ]
    then
     echo "x11vnc nao esta rodando" >>/var/log/x11vnc.log
     exit -1;
    else
     kill -9 $pid
    echo "x11vnc parado" >>/var/log/x11vnc.log
    fi

  ;;
  *)
    echo "x11vnc Script de Inicializacao"
    echo "Use: $0 (start|stop)"
    echo "$OUTPUT"
  ;;
esac
exit 0

##Fim do script

Para inicializar junto com o Gerenciador de Display (Display Manager) siga as intruções 


Caso o seu gerenciador de Display for o GDM (GNOME) use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/X11/gdm/Init/Default /etc/gdm/Init/Default

Caso o seu gerenciador de Display for o KDM (KDE) use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/kde*/kdm/Xsetup

Caso o seu gerenciador de Display for o XDM use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/X11/xdm/Xsetup 

Caso o seu gerenciador de Display for o CDE use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/dt/config/Xsetup


Reinicie o Gerenciador de Display e acesse o Vnc pelo IP da maquina e a porta 5900