Hay muchos motivos por los cuales cuando alguien ( llamemosle víctima ) me solicita “arreglar su ordenador” trato de instalarles algún GNU/Linux (openSuse): por encima incluso de los aspectos económicos y filosóficos está la comodidad del pringao (yo) que va a “mantener” ese ordenador. En GNU/Linux es rematadamente fácil arreglar cualquier cosa en una máquina remota, con lo que todos ganamos: al no tener que desplazarme víctima solventa su problema de forma rápida y yo me ahorro paseos y visitas técnicas.
Por esto lo primero que hago una vez instalado openSuse en la máquina en cuestión es:

  • activar el inicio del servicio SSH al arranque del sistema.
  • abrir el puerto del cortafuegos para SSH.
  • abrir una nueva cuenta en dyndns.org para la víctima en cuestión.
  • instalar y configurar ddclient para que apunte a la cuenta recien creada en dyndns.org (p.ejm: victima.dyndns.org).

Listo. Todo lo demás que falte por instalar/configurar puede hacerse de forma remota, basta con abrir una consola desde casa y conectar con la víctima remota para instalar Firefox+Flash, codecs de vídeo, activar el autoarranque de Kmail ó Kopete, etc… ( Nota: doy por hecho que tenemos acceso como administrador – root – a dichas máquinas )

El problema, al menos en mi caso, es que los conocimientos ( no ya de Linux sino de informática básica ) de los dueños de estas máquinas son entre muy bajos ó extremadamente bajos, de tal manera que los problemas que plantean suelen ser del tipo:

  • !!No oigo el disco de Sabina!! ¿no tengo tarjeta de sonido? (problema: volumen al mínimo)
  • !!Skype no conecta!! ¿no vá internet? (problema: ha puesto la contraseña en el espacio donde aparecía el nombre de usuario)
  • Ha desaparecido internet, no me puedo conectar !! (problema: ha movido el icono de Firefox de la barra de tareas al escritorio)

Escritorio real, en el visor tightvnc y en el navegador

Es decir, son problemas dificiles de solucionar sino se vé el entorno de trabajo del usuario victima.

Para estos casos, lo mejor es echar mano de tightvnc, por pasos:

  • Conecta con víctima via ssh (ssh -l tu_user victima.dyndns.org)
  • Logeate como root ( su )
  • Instala tightvnc en la víctima remota ( yast -i tightvnc )
  • Abre los puertos 5901 y 5801 en el cortafuegos ó incluye VNC en los servicios autorizados (yast firewall )
  • Logeate como usuario víctima a cuyo escritorio quieres acceder ( su víctima )
  • Ejecuta el servidor vnc ( vncserver :1 ), te pedirá contraseña para acceder y contraseña para acceder en modo solo lectura ( a esta última respondemos NO )
  • Abre una nueva consola y desde tu propia máquina conecta con el servidor vnc victima ( vncviewer victima.dyndns.org:1 )

Tras escribir la contraseña se abrirá una ventana mostrando el escritorio remoto en TWM, es decir el escritorio más ligero posible, y una consola de Xterm. A partir de aqui puedes hacer dos cosas:

  • Si víctima está utilizando, por ejemplo, KDE y quieres ver como tiene configurado los controles de volumen de sonido, bastaría con ejecutar kmix en el terminal, corregir y cerrar para que la próxima vez que inicie su escritorio el volumen se encuentre correctamente encendido. ( Nota: que desde ssh puedes matar el kmix de víctima y reiniciarlo para que los cambios los aprecie de forma inmediata desde su propio escritorio que está corriendo en paralelo)

Otra opción consiste en lanzar el servidor vnc víctima directamente con KDE en lugar de TWM. Evidentemente, al ser un escritorio más pesado (visualmente) la transferencia será más lenta. En este caso quizás te convenga ejecutar el servidor vnc limitando su tamaño a 800×600.
Para esto:

  • cierra el servidor vnc anterior (vncserver -kill :1)
  • edita en el ordenador de víctima el archivo ~/.vnc/xstartup y cambia la linea de de aparece twm & por startkde &
  • relanza vnc ( vncserver -geometry 800×600 :1 ). Nota que ahora no solicita la contraseña que está archivada en ~/.vnc/passwd
  • Al abrir de nuevo el visor vnc ( vncviewer victima.dyndns.org:1 ) tendrás acceso a su escritorio KDE tal y como lo vé el mismo pudiendo controlar cualquier programa y sus configuraciones.

Nota I: observa que puedes acceder al escritorio de victima al mismo tiempo que lo hace ella. Es decir, cualquier cosa que cambies en la configuración puede ser deshecha si víctima la corrige y cierra la aplicación despues tuya. Probablemente para evitar conflictos te interese solicitar a víctima que cierre su escritorio.

Nota II: No es necesario iniciar un escritorio KDE para solucionar aplicaciones KDE. Desde el escritorio TWM puede lanzar kicker (barra de tareas) para (p.ejem) añadir un icono ó el reloj a dicha barra. Incluso puedes iniciar Kdesktop para ver el contenido del escritorio.

Nota III: Si tienes que comunicarte con tu víctima puedes hacer uso de kdialog para improvisar un servicio de mensajería ( export DISPLAY=:0.0; kdialog –inputbox ” Oye, te voy cortar la música un momento” ), la respuesta escrita en el cuadro de dialogo aparecerá en tu consola.

Nota IV: Puedes acceder al escritorio de víctima también desde un navegador utilizando el puerto 5801, para ello apunta el navegador a http://victima.dyndns.org:5801.