Archivo de la Categoría “GNU/Linux”
Todo las cosas que se me van ocuriendo hacer con GNU/Linux
Escrito por Juanlu en GNU/Linux
Estamos de enhorabuena, Google al fin ha publicado su versión de Google Talk Plugin para los usuarios de GNU/Linux tanto en 32 bits como en 64 bits. Los distribuyen como paquetes Debian, pero no es problema, podemos descomprimirlos e instalarlos a mano en cualquier distribución GNU/Linux sin mucha complicación.
- Descargamos el paquete .deb de este enlace. En mi caso reconoció que uso un sistema de 64 bits, supongo que influye el hecho de que uso un navegador compilado para 64 bits.
$ ar x google-talkplugin_current_amd64.deb
Descomprimimos el paquete .deb.
# tar xzf data.tar.gz --exclude=opt --exclude=etc --strip-components 2 -C /usr
# tar xzf data.tar.gz --exclude=usr --exclude=etc --strip-components 2 -C /opt
Extraemos solo los ficheros necesarios para instalar el plugin.
$ /opt/google/talkplugin/GoogleTalkPlugin
Comprobamos si es capaz de encontrar las bibliotecas necesarias ejecutando este comando.
# ln -s /usr/lib/libssl.so /usr/lib/libssl.so.0.9.8
# ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.0.9.8
Si nos da algún error, tenemos que crear enlaces simbólicos de las bibliotecas que nos pidiera.
Fuente: systemadmin.es
No Hay Comentarios »
Escrito por Juanlu en GNU/Linux
Probablemente haya personas que no sepan que cuando borramos un fichero de nuestro disco duro, realmente no es borrado. Al menos de la forma análoga en que podemos borrar nuestras tareas escritas a lápiz de cuando íbamos al “cole”. Lo que ocurre en realidad es que en el sistema de ficheros se marcan como libres todos los bloques usados para contener ese fichero. Sin embargo, los datos o contenido de ese fichero sigue existiendo. Vamos, que no hemos pasado la goma de borrar por cada una de las líneas de nuestras tareas del “cole”.
Pero sí que hay herramientas que nos ayudan a hacer un borrado seguro de nuestros datos en el disco duro, como lo es BCWipe, disponible para GNU/Linux, MacOS X y Windows.
¿Por qué querría yo asegurarme de que lo que borro no puede ser recuperado? Realmente, cualquier persona debería preocuparse por un borrado seguro, al menos, en el caso de deshacerse de un disco duro. Porque ahí podrían sacarse muchos datos nuestros como contraseñas, datos fiscales, personales, incluso información íntima que muy probablemente no nos gustaría que nadie más conociera como pueden ser registros de conversaciones de chat o mensajes de correo elecrónico.
BCWipe lo que hace es escribir información de forma aleatoria en todos los bloques ocupados por el fichero a eliminar y, una vez hecho esto, solicitar al sistema de ficheros que lo borre. Así, ni usando las propias herramientas de recuperación del sistema de ficheros, ni otras tecnologías de recuperación de información, podríamos recuperar los datos borrados. Hay personas que afirman que incluso llenar de ceros todos los bloques del fichero no es suficiente, ya que hay sistemas capaces de leer incluso el dato escrito con anterioridad a ese cero. ¡Increíble!
Menos mal que BCWipe dispone de varios algoritmos de reescritura y con diferetes repeticiones de reescritura, con lo que conseguimos reducir muchísmo la probabilidad de recuperar la información borrada.
Veamos 3 ejemplos primordiales de uso de BCWipe:
- Este es un ejemplo típico para borrar un dispositivo de bloque por completo, ya sea el disco completo o una partición. Hay que tener en cuenta que si se lo hacemos al disco completo (como hda o sda) perderemos con ello el MBR, la tabla de particiones y las particiones junto con su contenido. Pero si se lo hacemos a una partición (como hda1 o sda6) solo perderíamos el contenido de esa partición, y luego nos bastaría con formearla de nuevo para volverla a usar.
# bcwipe -b /dev/sda
Borrado de disco completo.
# bcwipe -bv /dev/hda6
Borrado completo del contenido de la partición, y además ofrece información adicional por consola.
- También tenemos la posibilidad de borrar ficheros concretos, directorios o árboles de directorios.
$ bcwipe mifichero.txt
Borrado de un fichero.
$ bcwipe -f mifichero.txt miotrofichero.txt
Borrado de una enumeración de ficheros sin preguntar.
$ bcwipe -rvf directorio
Borrado de un directorio y todo su contenido de forma recursiva, sin preguntar, y además ofrece información adicional por consola.
- Y también tiene una opción muy últil, que es hacer borrado seguro de toda la parte vacía del sistema de ficheros, es decir, todo lo que hemos borrado con anterioridad sea borrado realmente. Además esto puede ser usado con el sistema de ficheros montado.
# bcwipe -F /home
Borrado seguro del espacio libre del directorio /home.
A partir de ahora, cuando venda un disco duro usado, siempre le haré un bcwipe -bf antes de ponerlo a la venta. Por si acaso.
No Hay Comentarios »
Tener un sistema de 64bits en ocasiones da algunos quebraderos de cabeza, más que nada porque hay Software que es distribuido para plataformas x86 en su versión 32bits. Esta práctica es muy normal en desarrollos de Software privativo. Antes Adobe no distribuía su famoso Flash para 64bits para GNU/Linux y otro ejemplo es Skype, que aún se niega a publicar una versión de 64bits de su famoso programa de vídeo-conferencias.
Si además unimos a esto que Skype tiene problemas con las cámaras basadas en el driver gspca, tenemos un cóctel bastante amargo.
Para hacer funcionar nuestra flamante cámara basada en el driver gspca_561 o cualquier otra cámara basada en los drivers gspca en el Skype de nuestro Gentoo GNU/Linux 64bits debemos seguir los pasos siguientes:
# echo "media-libs/libv4l ~amd64" >> /etc/portage/package.keywords
# emerge -av media-libs/libv4l
Para instalar la versión 0.6.1 de libv4l que está enmascarada y es la que mejor funciona.
# echo "net-im/skype ~amd64" >> /etc/portage/package.keywords
# emerge -av net-im/skype
Instalamos Skype.
# nano -w /usr/bin/skype
Modificamos el fichero para que cuando ejecutemos Skype cargue la biblioteca de compatibilidad con V4l1:
#!/bin/sh
cd “/opt/skype”
if [ -n "/opt/skype" ] ; then
if [ "${LD_LIBRARY_PATH+set}" = "set" ] ; then
export LD_LIBRARY_PATH=”${LD_LIBRARY_PATH}:/opt/skype”
else
export LD_LIBRARY_PATH=”/opt/skype”
fi
fi
export LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so
exec ./skype “$@”
Si nos encontrásemos con la situación de que portage nos dice que Skype está enmascarado por el tipo de licencia, debemos decir a portage que acepte la licencia de Skype o bien que las acepte todas y así olvidarnos de eso. Basta con editar el fichero /etc/make.conf para añadir una de estas líneas:
ACCEPT_LICENSE="skype-eula"
Para aceptar solo la licencia de Skype.
ACCEPT_LICENSE="*"
Para aceptar cualquier licencia.
Con esto podemos usar normalmente Skype, y veremos como ya podemos disfrutar de nuevo nuestra Webcam.
No Hay Comentarios »
¿Cómo podemos instalar un sistema operativo en un equipo en el que no hay ni ratón, ni teclado, ni tan siquiera un monitor? Por red, está claro. Para ello primeramente deberíamos haber configurado la BIOS de nuestro equipo para que inicie automáticamente desde CD.
Después debemos preparar nuestra imagen de CD para que inicie automáticamente el servicio SSH al iniciar el sistema, y por supuesto con una clave de paso conocida. El CD de instalación de Gentoo nos propone unos parámetros de arranque para este fin, un ejemplo: gentoo-nofb dossh passwd=miclavedepaso y nos iniciará el sistema sin soporte frame-buffer y arrancará el demonio SSH para entrar como root con clave miclavedepaso.
Pero claro, no tenemos teclado, no podemos introducir estos parámetros en el arranque. Por lo que modificaremos el fichero isolinux.cfg del CD de instalación para hacer esto.
- Descargamos la imagen iso de la web de Gentoo.
# mount -o loop -t iso9660 install-x86-minimal-20100119.iso /mnt/cdrom
Montamos la imagen.
# mkdir /tmp/iso
# cp -rp /mnt/cdrom/* /tmp/iso
Copiamos el contenido.
# nano -w /tmp/iso/isolinux/isolinux.cfg
Modificamos las siguientes líneas, dejando todo lo demás tal cual está.
default gentoo-nofb
timeout 30
label gentoo
kernel gentoo
append root=/dev/ram0 init=/linuxrc nokeymap looptype=squashfs loop=/image.squashfs dosshd passwd=miclavedepaso cdroot initrd=gentoo.igz vga=791
label gentoo-nofb
kernel gentoo
append root=/dev/ram0 init=/linuxrc nokeymap looptype=squashfs loop=/image.squashfs dosshd passwd=miclavedepaso cdroot initrd=gentoo.igz
# mkisofs -J -R -l -z -V "MiGentoo 20100119" -o MiGentoo-20100119.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso/
Creamos la imagen iso.
# rm -rf /tmp/iso
Borramos ficheros temporales.
# umont /mnt/cdrom
Desmontamos la imagen original del sistema de ficheros.
# qemu -boot d -cdrom MiGentoo-20100119.iso
Probamos la iso con Qemu.
Ahora podemos grabar migentoo.iso en un CD para arrancar nuestro equipo. Desde otro equipo podemos entrar por SSH de forma remota. Para ello debemos saber qué dirección IP tiene en nuestra red, cosa que supongo no será muy complicado de averiguar. Podemos entrar en nuestro router y mirar qué equipos hay con direcciones asignadas.
Sin embargo tenemos la opción de modificar la inicialización de la red para que en lugar de intentar configurar todas las interfaces de red haciendo uso de DHCP, ponga una dirección IP válida para nuestra interfaz de red. De este modo, una vez llevado a cabo el paso 4 anterior, prosiguiríamos con los siguitentes:
# emerge -av sys-fs/squashfs-tools
Instalamos sys-fs/squashfs-tools si no lo estuviera.
# mkdir /tmp/squash /mnt/squash
# mount -o loop -t squashfs /tmp/iso/image.squashfs /mnt/squash
# cp -rp /mnt/squash/* /tmp/squash/
Montamos el sistema de ficheros SquashFS y copiamos el contenido.
# nano -w /tmp/squash/etc/conf.d/net
Modificamos el fichero con nuestra configuración de red de modo que quede así:
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
config_eth0=( "192.168.1.111/24" )
routes_eth0=( "default via 192.168.1.1" )
# mksquashfs /tmp/squashfs /tmp/iso/image.squashfs.nuevo
# umount /mnt/squash
# rm -f /tmp/iso/image.squashfs
# mv /tmp/iso/image.squashfs.nuevo /tmp/iso/image.squashfs
# rm -rf /tmp/squash
Creamos la nueva imagen SquashFS, desmontamos la imagen antigua y substituimos la copia antigua por la nueva. Para acabar borramos la copia temporal del contenido de la imagen SquashFS.
Una vez hecho esto podemos continuar con el paso 5 del primer bloque. De esta manera con ejecutar en nuestra máquina de trabajo un comando como por ejemplo ssh root@192.168.1.111, ya podríamos comenzar con la instalación. También podríamos usar el CD como sistema de rescate, por supuesto.
Si vas a instalar Gentoo te recomiendo que uses GNU screen, ya que si la conexión SSH falla o simplente quieres apagar tu equipo de trabajo, puedes cerrar y volver a entrar en la sesión screen con posterioridad para seguir por donde ibas.
2 Comentarios »
Sabemos que las nuevas versiones de WordPress son capaces de autoactualizarse a través del protocolo FTP. En mi servidor no tengo ni quiero configurar un servidor FTP, porque con el SSH me basto y me sobro. Podemos conseguirlo en Gentoo de un modo muy sencillo:
Instalamos el soporte de SSH2 para PHP:
# emerge dev-php5/pecl-ssh2
Reiniciamos nuestro servidor web Cherokee: # /etc/init.d/cherokee restart
 Autoactualización con soporte SSH.
Cuando aparezca una nueva actualización de WordPress y este nos avise como de costumbre, veremos que nos aparece la pantalla de autoactualización de siempre, pero con SSH como una nueva opción. La seleccionamos y rellenamos los campos necesarios para actualizar. Debemos tener en cuenta algunas cosas muy importantes antes de pulsar en actualizar, como son hacer copia de seguridad de nuestra base de datos y de la propia instalación de WordPress. Que luego si algo va mal y no la hemos hecho nos podemos estar tirando de los pelos una hora y estaremos igual pero calvos.
Además, si os diera error y aparentemente lo tenéis todo correcto. Debéis tener en cuenta que la estructura de directorios y ficheros de vuestro WordPress deben tener como dueño al usuario de ejecuta el servidor web, en mi caso es cherokee.
Ejemplo de solución: # chmod -R cherokee:cherokee /var/www/directorio/a/wordpress
Tened en cuenta cosas como el usuario que usáis para hacer login, que debe tener permisos suficientes para ejecutar este proceso. En mi caso es root, pero no permito el acceso a root por SSH así que tengo que cambiar esto en mi configuración sólo y exclusivamente para la actualización automática. Aún así sigue siendo más cómodo esto que hacer la actualización manual.
Espero que sirva de ayuda a alguien.
No Hay Comentarios »
Una de muchísimas cosas que me gustan de Gentoo es la estética de la consola. Supongo que la manera en que se suele administrar este sistema y sobre todo lo peculiar de su instalación hacen que los usuarios que disfrutamos de ella usemos la consola mucho. Y si lidias con algo durante mucho tiempo, qué mejor que sea lo más bonito posible, ¿no?
Algo que echo mucho de menos en una instalación de Ubuntu es esa tan cuidada decoración de la consola que tiene Gentoo, así que he decidido copiarla en mi portátil, donde uso Ubuntu 9.10.
Bueno, la consola en Gentoo básicamente se muestra como una consola con un prompt decorado con colores y, ademas, el comando ls que colorea los ficheros según el tipo al que pertenecen. Debemos ejecutar estos comandos:
$ echo "export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w $\[\033[00m\] '" >> ~/.bashrc
$ echo "eval \$(dircolors -b .DIR_COLORS)" >> ~/.bashrc
$ echo "alias ls='ls --color=auto'" >> ~/.bashrc
$ echo "alias grep='grep --color=auto'" >> ~/.bashrc
Para acabar debéis descargar el fichero .DIR_COLORS en ~.
Para el usuario root, es básicamente lo mismo, solo que cambia el primer comando a añadir en el .bashrc:
$ echo "export PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W #\[\033[00m\] '" >> ~/.bashrc
$ echo "eval \$(dircolors -b .DIR_COLORS)" >> ~/.bashrc
$ echo "alias ls='ls --color=auto'" >> ~/.bashrc
$ echo "alias grep='grep --color=auto'" >> ~/.bashrc
Y por supuesto debéis descargar tambien el fichero .DIR_COLORS en el ~ de root.

- Imagen de muestra de la consola.
No Hay Comentarios »
Con pocas palabras entederéis de qué va esto:
# emerge wtf
$ wtf is lmao
LMAO: laughing my ass off
$ wtf is lol
LOL: laughing out loud
$ wtf is wtf
WTF: {what,when,where,who,why} the fuck
Uno de los programas más útiles que he encontrado últimamente, jajaja.
No Hay Comentarios »
Estoy usando una memoria USB cifrada con TrueCrypt para que en caso de pérdida no se puedan acceder a los datos contenidos en ella.
La suelo usar en un equipo con Windows XP que no está en mi casa, y en casa solo uso GNU/Linux. El problema ha sido que el sistema de ficheros VFAT se ha corrompido, y para arreglarlo en casa he tenido que usar Truecrypt en Gentoo.
Descargasmos de la web de Truecrypt la versión última del software para GNU/Linux, y la copiamos en /usr/portage/distfiles. Ejecutamos # emerge truecrypt y ya lo tenemos listo.
Para montar usamos # truecrypt fichero.tc, veremos que se nos monta en /media/truecrypt1 o algo similar.
En mi caso necesitaba conectar solo el dispositivo pero sin montar el sistema de ficheros para poder hacerle un fsck.vfat. Cosa que conseguimos con # truecrypt --filesystem=none fichero.tc. A continuación: # fsck.vfat -a /dev/mapper/truecrypt1.
Para desmontar todos los sistemas montados usamos # truecrypt -d
Y por último si os da un error del tipo:
device-mapper: reload ioctl failed: Invalid argument
Command failed
Podéis solucionarlo aquí.
No Hay Comentarios »
¡Qué pesadilla! Mi cron daemon me envía un correo-e de aviso cada vez que algo inesperado ocurre en la ejecución de los comandos. Bien, pues resulta que me han llegado como 500 correos en los que todos comentaban el mismo error: “/bin/bash: root: command not found”. ¡Claro que root no es un comando! ¿Pero por qué cron intenta ejecutar root como un comando? Hoy me ha quedado clarísimo.
Uso vixie-cron como cron daemon, este demonio al igual que otros tiene soporte para un crontab file de sistema y otros para cada usuario de sistema. La diferencia entre el crontab file de un usuario y el del sistema es que el sexto campo en el crontab file del sistema es el usuario usado para ejecutar el comando que aparece en el campo séptimo. El cron de sistema es el único que puede ejectuar comandos haciéndose pasar por otro usuario del sistema. Debido a esto, si cualquier otro usuario tiene un crontab file, el sexto campo debe ser directamente el comando a ejecutar.
¿Qué narices me había pasado? Pues que en algún momento edité el crontab del usuario root como si el de sistema se tratase, por equivocación. Así que tenía el mismo crontab file para el sistema como para el usuario root. Si quieres editar el crontab file del sistema jamás uses el comando crontab tal cual. Para editarlo se recomienda usar el comando crontab -e o bien editar /etc/crontab con tu editor de texto favorito.
¿Y como solucioné el problema? Ejecuté como root el comando crontab -r que borra el crontab de usuario. De ese modo ya solo se ejecuta el crontab de sistema y todo ha vuelto a la normalidad.
2 Comentarios »
Hace unos días hablaba con un amigo sobre programitas para nuestros teléfonos Symbian de Nokia, el mío en concreto es un Nokia N81 y el de él un Nokia N95. Entre varios programas hablamos algo sobre los programas que hay que te permiten usar el terminal móvil como webcam inalámbrica. Había visto algunos para Windows y por eso mismo ni los había probado. Hoy he buscado de nuevo a ver qué me encontraba y me he llevado una grata sorpresa. He topado con SmartCam un proyecto libre alojado en Sourceforge, que consigue que mi móvil funcione como webcam en mi máquina GNU/Linux.
El funcionamiento consiste en instalar un programa cliente en el terminal móvil, y otro programa servidor más el driver para el kernel en el equipo en el que queremos usar el terminal como webcam. He probado también en mi N70 tanto con el cliente Java como con el cliente nativo para Symbian, pero no he tenido suerte. Sin embargo, todo ha funcionado perfecto para mi N81.
He instalado usando el código fuente que podéis encontrar aquí, si os fijáis también hay paquetes deb para Debian y que usen APT. Los pasos son muy sencillos: descargar el correspondiente .tar.gz, descomprimir tar xzfv fichero.tar.gz, cambiamos al directorio que ha descomprimido y ejecutamos los tres comandos mágicos: ./configure, make, make install.
Con esto ya tenemos el servidor instalado, que se ejecuta desde consola solo con teclear smartcam, pero aún nos queda compilarnos el módulo para el kernel y montarlo debidamente. Para ello accedemos al directorio driver_src que cuelga del directorio que hemos descomprimido antes, y llamamos a la orden make -C /lib/modules/`uname -r`/build M=`pwd` y con esto deberíamos tener el driver compilado sin problemas.
Para montar el driver:
# modprobe videodev
# insmod smartcam.ko
Para instalar el cliente en el teléfono enviamos el .sis correspondiente por bluetooth al terminal, podemos encontrarlos en el directorio /usr/local/share/smartcam/phone_installs/, ejecutamos el servidor en nuestro PC con la orden smartcam como usuario.
Si usáis un kernel 2.6.29 como yo, necesitaréis aplicar un parche al código fuente del driver. Es fácil, descargáis el parche en el mismo directorio donde está el código fuente del driver (driver_src/)y ejectuáis patch -p0 < smartcam-2.6.29.4.patch y luego compiláis como expliqué antes.
Los dos programas tanto cliente como servidor son sencillísimos de usar tanto por wifi como por bluetooth, si queréis usarlo por bluetooth o por WiFi debéis configurar antes el servidor para que espere la conexión por lo que hayáis escogido (File->Settings). Tened en cuenta que debéis tener una conexión bluetooth en correcto funcionamiento previamente, al igual que vuestra red local y vuestro WiFi.
2 Comentarios »
|