Hacía tiempo que no leía un artículo tan práctico e interesante, pero HowToForge sigue sorprendiéndome cada día. En esta ocasión, explicando paso a paso (con pantallazos y código preparado para copy&paste), cómo instalar un servidor NFS usando los interfaces gráficos de configuración que vienen por defecto en Fedora 8, cómo configurar dicho servidor y el firewall para que acepte conexiones contra NFS y cómo configurar un script KickStart que permita arrancar un cliente con el CD de instalación inicial, editar la línea GRUB del comienzo y lanzar la instalación desatendida del cliente, incluída la ejecución de un script post-install. Genial.
Categoría: SysAdmin
Reto para «Código & Colegas»
Un grupo de alumnos ha organizado para esta tarde en la FISS (Facultad de Informática de San Sebastián), un pequeño meeting bajo el nombre «Código & Colegas», para compartir código, ideas y conocer a más gente interesada en programación. La verdad es que le podían haber dado más bombo a la iniciativa y ser más concretos en los objetivos, pero , ¡hey! están empezando y por tanto, más que criticar, mejor aplaudir y colaborar 🙂 Ahí va mi granito de arena: un reto de programación, cortito y entendible, de los que provocan necesidad de una buena dosis de cafeína para resolverlo:
Sean los Strings números y dígitos. Cada una de esas cadenas contiene únicamente dígitos entre 1 y 9, inclusive. Para cada ocurrencia de un dígito en el String dígitos , debes eliminar una única ocurrencia de ese dígito en números. Objetivo: terminar - tras haber eliminado los dígitos necesarios - con una cadena que represente el número más alto posible. Devolver este número como String
Ejemplo 1:
números: «12345»
dígitos: «513»
Devuelve: «24»
Si eliminamos los dígitos ‘5’, ‘3’, ‘1’ obtenemos el número 24.
Ejemplo 2:
números: «654321123456»
dígitos: «612534»
Devuelve: «654321»
(Eliminando de la segunda mitad de números )
Ejemplo 3:
números: «2654982765982365»
dígitos: «2345978»
devuelve: «698265265»
NOTA: el ejercicio está sacado de una de las competiciones de TopCoder. Que saber de dónde viene no provoque la pérdida de interés por intentar resolverlo por vuestra cuenta 😉
Asociar extensiones con aplicaciones en GNOME
Me ha llevado más de 2 minutos encontrar la opción, por lo que considero que no es evidente y que hay que documentarla. El problema: en una carpeta con ficheros .doc, al hacer doble click sobre ellos se abre una ventana en la que se me indica que las mejores aplicaciones para abrirlo son AbiWord y KWord (ninguna de las dos está instalada en mi PC). OpenOffice no sale como alternativa (tengo instalado OpenOffice 2.4, desde paquetes .deb). ¿Cómo hacer que la extensión .doc esté asociada con OpenOffice.org Writer? Abrir Nautilus / Situarse en la carpeta donde está el .doc / botón derecho sobre el .doc / Ficha Abrir con. Elegir OpenOffice Writer o teclear la ruta hacia esa aplicación. ¡Listo!
Túnel inverso SSH
Supongamos la siguiente situación: estás en casa y quieres conectar por ssh con el Linux de tu oficina (destino). Problema: el firewall de la oficina bloquea las conexiones entrantes. Desde el pc de la oficina puedes conectar hacia el exterior, y en concreto tienes acceso ssh a una máquina intermedia. Desde casa tienes acceso a la misma máquina intermedia, también por ssh. Bien, aquí es donde entra en juego los túneles ssh inversos.
Desde la máquina destino (lógicamente tendrás que hacerlo antes de irte de la oficina, o bien que alguien que ya esté en la oficina lo haga, o bien un proceso cron…)
user@destino$ ssh -R 10000:localhost:22 usuariointermedio@maquinaintermedia
Es decir, desde destino, abrir una conexión ssh contra la máquina intermedia. Al conectar, crear un túnel inverso de tal forma que el puerto 10.000 de la máquina intermedia conecte con el puerto 22 de la máquina destino.
Desde casa:
user@casa $ ssh usuariodestino@maquinaintermedia -p 10000
Es decir, conectar desde casa al puerto 10.000 de la máquina intermedia (con credenciales de la máquina destino). Si todo va bien, se nos abrirá una conexión ssh contra el Linux de la oficina , pasando como trampolín o pasarela por la máquina intermedia.
Para rematar, si quieres evitar problemas de desconexión por timeout, modifica el fichero de configuración ssh /etc/ssh/sshd_config para que incluya las siguientes líneas:
TCPKeepAlive yes ClientAliveInterval 30 ClientAliveCountMax 99999
Nota: si la última orden ssh te dice algo como «Connection refused» haz lo siguiente: conecta normal por ssh (al puerto 22) desde casa a la máquina intermedia. Una vez ahí, lanza la siguiente orden:
$ ssh usuariodestino@localhost -p 10000
¡Listo! Hoy, leer en el wiki de Gentoo sobre cómo se hacen túneles inversos por ssh contra máquinas protegidas por un firewall me ha salvado de hacer un viaje de unas cuantas horas… Espero que os venga igual de bien a vosotros, lectores de diariolinux.com. Y recuerda que no es la primera vez que hablamos de las maravillas de ssh.
Recuperar archivos borrados en particiones ext3
Carlo Wood ha escrito un excelente HowTo técnico sobre cómo recuperar archivos borrados en un sistema de archivos EXT3. Como complemento al artículo ha programado una herramienta llamada ext3grep que ayuda en esa tarea. El artículo y la herramienta son muy técnicos, se mete a fondo en el funcionamiento interno de ext3, o sea, es una delicia de artículo para que nos podamos divertir esta semana santa 🙂 Lo malo es que el autor no ha publicado aún el código fuente de ext3grep, aunque se le puede solicitar por email (yo ya lo he hecho, a ver qué me dice). Enlace para apuntar.
UPDATE: Carlo Wood me ha respondido indicándome que el código fuente ya es público para todos, basta con leer la lista de ext3grep en Google Groups y verás el enlace.