General

Reglas de udev, caso práctico

Hace un par de días vi el post de Jesús sobre las smartcards. Realmente no tengo dinero (ni tiempo, ya la semana que viene es el Foro Mundial de Conocimiento Libre) para comprar un aparatico así, pero quería tener una forma de bloquear y desbloquear rápido la laptop utilizando un método que no involucrara teclear nada.

Hace unos días estuve jugando con udev y la solución parecía venir por ahí. Luego de leer la documentación escribí una regla para ejecutar el comando xscreensaver-command -lock cuando se remueve mi pendrive (un Swissbit Twist). Muchísimas cosas se pueden automatizar con buenos sets de reglas bajo /etc/udev/rules.d. Por ejemplo, se puede llamar a pppd para llamar a un peer cuando se detecte que se conectó un teléfono celular, o llamar a pilot-xfer para prepararse para un Hotsync cuando se conecte un PDA Palm. O desactivar el touchpad Synaptics cuando se conecte un mouse inalámbrico, o abrir amsn2 cuando se conecte una Webcam.

En este caso la verificación se hace contra tres parámetros: la marca, el modelo y el serial del pendrive. Para mayor seguridad, el script que es llamado podría montar el pendrive y verificar la coincidencia de un par de llaves GPG en el host y en el pendrive. Esto tendría más aplicaciones, claro, como por ejemplo utilizar un manejador de keyrings para el manejo de identidades en sesiones volátiles.

Por cierto, en los quince minutos que busqué en Google no encontré demasiadas referencias útiles al problema de la acción remove de udev: la información sobre el dispositivo se hace disponible en SysFS cuando éste se conecte, pero al momento de la remoción, la información de SysFS ha desaparecido para ese dispositivo. Afortunadamente, udev guarda en algunas variables de entoo parte de esta información. La mejor forma de conocer las variables que podemos utilizar para comparaciones en reglas de udev se ve con udevmonitor --env y enchufando y desenchufando el dispositivo. Y de nuevo recomiendo esta guía, invaluable incluso para entender cómo rayos funciona udev.

Standard

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s