ThinkFinger (Español)
ThinkFinger es un controlador para el lector de huellas digitales SGS de la empresa Thomson Microelectronics que se monta en la mayoría de portátiles IBM/Lenovo ThinkPad.
Contents
Instalación
Consiga el paquete desde aquí.
Configuración
TF-Tool
Utilice tf-tool para probar ThinkFinger. Tendrá que ejecutar esto como root debido a que se necesita acceso directo a los dispositivos usb. Ejecute tf-tool --acquire para generar un archivo bir y tf-tool --verify para ver si le identifica correctamente. tf-tool --add-user <nombreusuario> adquiere y alamacena su huella digital en /etc/pam_thinkfinger/nombreusuario.bir, archivo necesario para una identificación con pam.
Pam
PAM ("Pluggable Authentication Module") es el módulo insertable de autentificación, inventado por Sun.
/etc/pam.d/login
Cambie el archivo /etc/pam.d/other para que se parezca a lo siguiente si quiere utilizar su huella digital para autentificarse a si mismo al ingresar al sistema:
#%PAM-1.0 auth sufficient pam_thinkfinger.so auth required pam_unix.so use_first_pass nullok_secure account required pam_unix.so password required pam_unix.so session required pam_unix.so
/etc/pam.d/su
Cambie este archivo para confirmar la orden su con un suave movimiento circular con el dedo.
#%PAM-1.0 auth sufficient pam_rootok.so auth sufficient pam_thinkfinger.so auth required pam_unix.so nullok_secure try_first_pass account required pam_unix.so session required pam_unix.so
/etc/pam.d/sudo
Cambie este archivo para confirmar la orden sudo con un suave movimiento circular de su dedo.
#%PAM-1.0 auth sufficient pam_thinkfinger.so auth required pam_unix.so nullok_secure try_first_pass auth required pam_nologin.so
/etc/pam.d/xscreensaver
XScreensaver tiene truco. Primero, configure PAM con un archivo "/etc/pam.d/xscreensaver" que contenga:
auth sufficient pam_thinkfinger.so auth required pam_unix_auth.so try_first_pass
Pero aún así no funcionará porque xscreensaver no puede leer/escribir desde /dev/misc/uinput o /dev/bus/usb*. Se tiene que escribir una regla udev para autorizarle a un grupo el acceso de lectura/escritura.
Primero, cree un grupo nuevo. Le sugiero "fingerprint":
> sudo groupadd fingerprint
Añada el usuario que quiera que sea capaz de desbloquear xscreensaver con el lector de huellas digitales al grupo:
> sudo gpasswd -a <user> fingerprint
No olvide salir e ingresar de nuevo.
Haga una búsqueda de los términos "uinput" y "bus/usb" en directorio de reglas udev:
> grep -in uinput /etc/udev/rules.d/* /etc/udev/rules.d/udev.rules:222:KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k" /etc/udev/rules.d/udev.rules:263:KERNEL=="uinput", NAME="input/%k" > grep -in "bus/usb" /etc/udev/rules.d/* /etc/udev/rules.d/udev.rules:318:SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev};printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0664" /etc/udev/rules.d/udev.rules:320:SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664"
Ahora copie las ĺineas anteriores (222, 318 y 320 del archivo /etc/udev/rules.d/udev.rules) a un nuevo archivo de reglas udev. Le sugiero /etc/udev/rules.d/99my.rules
KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k", MODE="0660", GROUP="fingerprint" SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev};printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0664", GROUP="fingerprint" SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664", GROUP="fingerprint"
La diferencia entre las reglas de /etc/udev/rules.d/99my.rules y aquellas de /etc/udev/rules.d/udev.rules sólo deberían ser el añadido de MODE="0664", GROUP="fingerprint" o MODE="0660", GROUP="fingerprint" al final de las líneas.
Después de esto tendrá realmente que dar a su usuario permisos de acceso a su propio archivo de huella digital, esto se puede hacer de la manera siguiente:
> chown $USERNAME:root /etc/pam_thinkfinger/$USERNAME.bir > chmod 400 /etc/pam_thinkfinger/$USERNAME.bir > chmod o+x /etc/pam_thinkfinger
Sí, la última establece permisos de ejecución para todo el mundo en un directotio, así que si es usted un super paranoico, podría considerar esto como un fallo de seguridad, queda avisado.
Lo último tiene que ver con xscreensaver. Si inspecciona el archivo xscreensaver verá que tiene el permiso setuid para root:
> ls -l /usr/bin/xscreensaver -rwsr-sr-x 1 root root 217K aoû 2 20:47 /usr/bin/xscreensaver
Debido a esto, xscreensaver no será capaz de desbloquearse con el lector de huella digital. Tiene que quitar ese permiso con:
> sudo chmod -s /usr/bin/xscreensaver > ls -l /usr/bin/xscreensaver -rwxr-xr-x 1 root root 217K aoû 2 20:47 /usr/bin/xscreensaver
¡Ya está!
/etc/pam.d/gdm
[No soy un experto en PAM pero esto funciona, puede que esta sección necesite correcciones]
Edite /etc/pam.d/gdm como se hace en las secciones 3.1 y 3.2
Añada como primera fila del archivo:
auth sufficient pam_thinkfinger.so
Modifique:
auth required pam_unix.so ==> auth required pam_unix.so use_first_pass nullok_secure
/etc/pam.d/xdm
Cambie /etc/pam.d/xdm para que se parezca a esto:
#%PAM-1.0 auth sufficient pam_thinkfinger.so auth required pam_unix.so use_first_pass nullok_secure auth required pam_nologin.so auth required pam_env.so account required pam_unix.so password required pam_unix.so session required pam_unix.so session required pam_limits.so
SLiM
Para que thinkfinger pueda trabajar con el gestor de ingreso SLiM tendrá que activar la capacidad PAM. Consiga el código fuente del paquete slim desde el ABS y cambie la línea de "make" en el PKGBUILD:
make USE_PAM=1 || return 1
Reconstruya el paquete e instálelo.
Cree entonces un archivo /etc/pam.d/slim
#%PAM-1.0 auth sufficient pam_thinkfinger.so auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so account required pam_unix.so session required pam_limits.so session required pam_unix.so password required pam_unix.so
Ahora reinicie slim y haga un suave movimiento circular con su dedo.
Más información
Vea por favor estas urls para más información.
http://www.thinkwiki.org/wiki/Talk:How_to_enable_the_fingerprint_reader
http://thinkfinger.sourceforge.net/
https://bbs.archlinux.org/viewtopic.php?id=36134
http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger
http://www.thinkwiki.org/index.php?title=Installing_Ubuntu_6.06_on_a_ThinkPad_T43#Fingerprint_Reader