17 años en Internet

09 diciembre 2009

Jugando con el lector gratuito del DNIe (II)

El mes pasado os pasé un ejemplo rápido de lo que se puede hacer con el lector de DNIe que regala el Ministerio del Interior. Como aún no he profundizado con el tema, os pongo otro ejemplo bastante similar: Apagar el ordenador si no hay una tarjeta de la UPV insertada en el equipo. El control se realizaría a través de cron, invocando cada minuto el siguiente shellscript:
#!/bin/bash
/usr/bin/pcsc_scan > /tmp/pcsc.log &
sleep 1
export ENTRAR=0
export ENTRAR=$(grep "3B 7F 11 00 00 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00" /tmp/pcsc.log| wc -l)
rm /tmp/pcsc.log
pkill pcsc_scan
if [ $ENTRAR -eq 0 ]
then
/sbin/init 0
fi
En mi caso di permisos de ejecución a este shellscript y lo guardé en /usr/sbin/centinela.sh. Para invocarlo desde cron, primero hay que hacerse usuario root por consola ("$sudo bash" en Ubuntu y "$su - " en distribuciones tradicionales) y después ejecutar el editor de cron ($crontab -e) para añadir la siguiente línea:
* * * * * /usr/sbin/centinela.sh
Si no tienes instalado el comando pcsc_scan, el shellscript no te funcionará. Para instalarlo ejecuta (si usas una distribución Ubuntu, Debian o similar):
$ sudo apt-get install pcsc-tools
Si en vez de usar una tarjeta de la UPV quieres que sea otro tipo de tarjeta, ejecuta pcsc_scan y busca la linea "ATR:". Verás una cadena de números en hexadecimal. Copia esa cadena y sustitúyela por la que hay escrita en el grep de mi shell.

Un saludo

2 comentarios:

Si te ha gustado la entrada o consideras que algún dato es erróneo o símplemente deseas dar algún consejo, no dudes en dejar un comentario. Todo feedback es bienvenido siempre que sea respetuoso. También puedes contactarme vía Twitter @Hamster_ruso si lo consideras necesario.