8.8.09

Linux: Caché LDAP, autentificación desconectada

Cuando hemos configurado la autentificación del sistema contra un servidor LDAP, a priori, si no estamos conectados a la red, no podremos iniciar sesión con el usuario LDAP que corresponda.
Para solucionar esto podemos crear un script que se ejecute el inicio del sistema que volcará el contenido que nos interese del servidor LDAP a modo de caché, permitiéndonos autentificar el equipo cuando no estemos conectados a la red o el servidor LDAP sea inaccesible.

El contenido el script es el siguiente:

#!/bin/bash

nss_updatedb ldap passwd
nss_updatedb ldap group

Si el comando nss_updatedb no existe en el sistema debemos instalar el paquete correspondiente (nss_updatedb ó nss-tools generalmente).

6.8.09

Synaptics en Fedora (no funciona el click tab ni el scroll)

El demonio HAL que viene con Fedora 11 (con la versión 10 creo que también pasa) no detecta el touchpad de muchos portátiles como tal, sino que lo trata como un periférico convencional. La documentación de Fedora ofrece solución a este problema, pero para los más vagos he aquí la receta:

Instalamos el paquete synaptics (si es que no lo está ya)

yum install xorg-x11-drv-synaptics

Copiamos la configuración del touchpad al directorio etc de HAL

cp /usr/share/hal/fdi/policy/20thirdparty/10-synaptics.fdi /etc/hal/fdi/policy/

Editamos el fichero /etc/hal/fdi/policy/10-synaptics.fdi y elinimamos los comentarios siguientes:



dejando el fichero de la siguiente forma:



Reiniciamos el sistema y comprobamos que scroll del touchpad funciona así como el pad click.

11.6.09

vsftpd en cinco minutos

Configurar un servidor FTP en Linux es mucho más rápido que en Bindous, a base de darle clicks a los botones de "Siguiente", desde que existe vsftpd.
La instalación de vsftpd es bien sencilla, apt-get install vsftpd (Debian, Ubuntu...) ó yum install vsftpd (Red Hat, Fedora..), según convenga.

Una vez instalado tendremos que toquetear el ficheiro configuración que se ecuentra en /etc/vsftpd.conf ó /etc/vsftpd/vsftpd.conf según cual sea la distribución. Para configurar que sólo se autentifiquen usuarios locales, en modo activo y los enjaule en sus home, dejaremos el fichero de la siguiente forma:


anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Bienvenido a mi servidor FTP!
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


Si lo queremos en modo pasivo, eliminaremos la entrada connect_from_port_20 y pondremos lo siguiente:

pasv_min_port=50000
# Puerto que inicia el rango
pasv_max_port=55000 # Puerto que cierra el rango

10.6.09

Gestor de descarga Rapishare para Linux (Usuarios Premium)

Siempre se puede instalar el JDownloader y herramientas similares que tiran de Java chupan CPU y no le llegan ni a la suela de los zapatos a wget. Lo que mucha gente desconoce es lo parametrizable que resulta wget, como por ejemplo, para insertar usuario y password de cuentas premium de RapidShare.
Me hecho este pequeño script que me sirve como gestor de ventanas gráfico usando zenity, que descarga todos los enlaces contenidos en un fichero de texto, enlaces de RapidShare por supuesto:

#!/bin/bash
RAPIDUSR=`zenity --entry --title "RapidShare" --text "Inserte el usuario" 2& `
RAPIDPWD=`zenity --entry --title "RapidShare" --text "Inserte el password" --hide-text 2&`
LISTA=`zenity --file-selection --title "RapidShare" 2&`

wget --http-user=${RAPIDUSR} --http-password=${RAPIDPWD} -c -i ${LISTA}


Funciona a las mil maravillas y con resumen de descarga, impresionante wget.

NOTA: Hay que ejecutarlo en un terminal.



17.4.09

DNIe en Fedora 10 con ACR38

En el PC City vendían el mini-lector PCSC USB ACR38 de bit4id a 20 eurillos así que tocó pelearse un poco con él. Ya había instalado este dispositivo (en otros formatos) en Suse 10 pero siempre 32bit, he aquí los pasos para hacerlo correr en Fedora x64.

Lo primero instalar los paquetes necesarios

yum install openct opensc pinentry pcsc-tools

Ahora descargamos de la web del fabricante el controlador para el lector, lo descomprimos, compilamos e instalamos

cd /usr/src/
wget http://www.bit4id.com/espanol/descargas_file/drivers/miniLectorUSB/ACR38_LINUX_100706_P.tar.gz
tar zxf ACR38_LINUX_100706_P.tar.gz
cd ACR38_LINUX_100706_P
./configure
make
make install


Descargamos e instalamos el paquete del DNIe

cd /usr/src
wget http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/opensc-dnie-1.4.5-1.fc9.x86_64_Fedora_9.rpm.tar
tar xf opensc-dni-1.4.5-1.fc9.x86_64_Fedora_9.rpm.tar
rpm -Uvh opensc-dnie-1.4.5-1.fc9.x86_64_Fedora_9.rpm


Iniciamos los servicios correspondientes y los marcamos para que se carguen en el arranque

service pcscd restart
service openct restart
chkconfig pcscd on
chkconfig openct on


Nos vamos al lanzador de aplicaciones y picamos sobre el elemento del menú Oficina -> Registrar módulo DNIe PKCS#11. Se abrirá Mozilla Firefox y nos preguntará si queremos instalar el módulo de seguridad, respondemos que si.

Descargar el certificado raíz de la Policía Nacional

cd
wget http://www.dnie.es/certs/ACRaiz.crt


Ahora abrimos Firefox y cargamos el certificado desde los siguientes menús: Editar -> Preferencias -> Avanzado -> Cifrado -> Ver certificados -> Importar y cargamos el archivo ACRaiz.crt que acabamos de descargar.

Reiniciamos Firefox y comprobamos que todo funciona desde el enlace http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html

Python: Valor de las variables de sistema

Las variables de sistema son extremadamente fáciles de recolectar con Python y, como siempre, con un mínimo de cuidade a la hora de programar hacemos que el código se ejecute perfectamente en cualquier sistema operativo. Mediante este simple método podemos ver los valores de las varibles pasando un string con su nombre:

import os

def getValorVar(_nombreVar):

   return os.environ[_nombreVar]

if __name__=='__main__':

   print 'Valor de $PATH: ' + getValorVar('PATH')
   print 'Valor de $USR: ' + getValorVar('USR')

Y si, funciona igual en bindous.

14.4.09

ZFS (Fuse) para Red Hat Enterprise/Centos 5.3

Para no perder tiempo, aquí dejo el paquete compilado para RHEL/Centos 5.3 del sistema de ficheros ZFS.

http://rapidshare.com/files/221131005/zfs-fuse-0.5.0-7.20081221.i386.rpm

Lo he compilado a partir de los últimos sources de Fedora 10.

2.4.09

Webcam Microdia de HP Pavilion (uvcvideo)

Desde que he abandonado a Debian por Fedora todo eran ventajas, hasta que me hizo falta usar la webcam del portátil, que en Fedora 10 no va. El problema es que el controlador uvcvideo que viene por defecto en Fedora es demasiado antiguo, así que hay que compilar uno nuevo.
En mi caso la webcam que incorpora mi portátil (HP Pavilion dv2106-eu) es la siguiente:

[root@dagobah webcam]# lsusb
Bus 001 Device 002: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


El primer caso es descargar la última versión disponible de http://linuxtv.org/hg/~pinchartl/uvcvideo/:

cd /usr/src
mkdir webcam
cd webcam
wget http://linuxtv.org/hg/~pinchartl/uvcvideo/archive/tip.tar.bz2
tar xjf tip.tar.bz2


Ahora, si no lo hemos instalado ya, instalamos los kernel headers:

yum install kernel-devel

Y finalmente compilamos e instalamos los nuevos módulos que sustituirán a los que trae el kernel de stock:

cd /usr/src/webcam/uvcvideo-e720bad42205
make clean
make all
make install
depmod -a


Reiniciamos el sistema y veremos que la webcam ya está soportada

[root@dagobah webcam]# dmesg | grep uvc
uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:62c0)
usbcore: registered new interface driver uvcvideo

Flash Player 10 para 64 bits

Es muy difícil conseguir en link a la descarga (al menos yo tardé bastante en encontrarlo) pero está disponible un flash player alpha para distribuciones Linux x64. La forma de instarlo es la siguiente (como root):

cd /usr/src
wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
tar zxf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
cp libflashplayer.so /usr/lib/mozilla/plugins/
chmod a+rx /usr/lib64/mozilla/plugins/libflashplayer.so


Tras reiniciar Firefox podemos comprobar que el plugin se ha cargado accediendo a la url about:plugins

Broadcom BCM4311 Wifi en Fedora 10 (x86 y x64)

Este truco no es aplicable a Debian y derivados (Ubuntu, Kubuntu) ya que estas distribuciones proveen su propio método.

El primer paso es instalar el paquete que extrae el firmware del controlador de Broadcom. Lo más probable es que ya esté en la lista de paquetes instalados pero por si acaso:

yum install bcm43xx-fwcutter


Necesitamos obtener la versión 4.150 del controlador disponible en http://linuxwireless.org/en/users/Drivers/b43#devicefirmware


su -
cd /usr/src
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver/
b43-fwcutter -w /lib/firmware wl_apsta_mimo.o


Reiniciar el sistema y ya podremos utilizar la conexión wifi a través del Network Manager

30.3.09

Python: Acceso al puerto USB

No es la primera vez ni será la última que he necesitado acceder a los puertos USB en busca de algún dispositivo en concreto, generalmente impresoras que no muestran el estado real de la impresión.

Mediante el uso de las siguientes clases tenemos todas las herramientas necesarias para identificar el tipo de dispositivo, estado, fabricante, puerto, etc, de forma ordenada. La primera clase se corresponde con el acceso a datos y la segunda es el modelo de los mismos.

El código ha sido subido al siguiente enlace http://www.nomorepasting.com/getpaste.php?pasteid=25349

Python: Un método para el envío de correo electrónico

Mediante este método listo para copiar y pegar y usando smtplib podemos enviar correo electrónico desde nuestros programas. La función ha sido pensada para el envío de correo a través de un servidor local que no requiere autentificación, si se necesita, habría que tocar las propiedades del objeto mailserver.

import smtplib

def mail(serverURL=None, sender='', to='', subject='', _text=''):

     headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to, subject)
     message = headers + _text
     mailServer = smtplib.SMTP(serverURL)
     mailServer.sendmail(sender, to, message)
     mailServer.quit()

17.2.09

Emerald en KDE4 en Fedora 10

Recién instalada Fedora 10 con los paquetes compiz y emerald correspondientes bajo el gestor KDE4, todo funciona correctamente menos Emerald, que se niega a cargarse con compiz. La solución es editar el script de carga de compiz situado en $HOME/.kde/env/kdewm.sh y dejarlo de la siguiente forma:

USE_EMERALD=yes
KDEWM=compiz-manager
export USE_EMERALD KDEWM

Reiniciar la sesión y listo.

30.1.09

Shell scripts que rompen, activando modo debug

No pasa ni una ni dos veces que ejecutamos un shell script y en algún lado rompe, pero la salida es demasiado críptica como para intuír por donde lo hace. Para solucionar este problema activaremos el modo debug de la shell añadiendo la opción -x de la forma:

/bin/sh -x mi_script.sh

También podemos editar la primera línea del script y añadir el parámetro:

#!/bin/sh -x
...

Ala! A "debuggear"!

2.1.09

Internet Explorer 6 bajo Linux (IE4Linux) con Java

Puede parecer una falacia pero en ciertos escenarios es útil. Instalarlo es muy simple.

Para cumplir dependencias debemos instalar wine y cabextract.

Luego nos situamos en /usr/src y realizamos la instalación

cd /usr/src/
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-version-descargada
./ies4linux


Esto hará que nos salga la ventana de instalación de IE, donde podremos cambiar el idioma a ES y picando en Advanced podemos cambiar el directorio de instalación por defecto:



Una vez realizada la instalación de IE, necesitamos Java. Descargamos la versión de Java deseada de java.sun.com y ejecutamos la siguiente sentencia:

export WINEPREFIX=/opt/ies4linux/ie6
wine /root/Descargas/jre-1_6_0_5-windows-i586.exe


Finalizada la instalación de Java podemos ejecutar IE mediante el comando:

wine /opt/ies4linux/ie6/drive_c/Program\ Files/iexplore.exe http://joservilas.blogspot.com