Copié esta publicación en ask Ubuntu por gertvdijk , señalado por mazs en los comentarios. En el esfuerzo de cerrar esta pregunta.
Basado en esta publicación en los foros de Ubuntu de BkkBonanza .
Este es un enfoque que utiliza PAM y funcionará para todos los intentos fallidos de inicio de sesión. Con SSH, un terminal virtual o mediante la pantalla de inicio de sesión normal, no importa, ya que PAM se encarga de todo al final.
Instale ffmpeg , vamos a usar esto como una forma de línea de comando para capturar las imágenes de la cámara web. Actualización: ffmpeg se elimina cuando actualiza a Ubuntu 14.04. Podemos usar avconv en lugar de ffmpeg en el siguiente script. No es necesario instalar nada por separado.
Cree un pequeño script en algún lugar, por ejemplo, /usr/local/bin/grabpicture
con el siguiente contenido
#!/bin/bash
ts=`date +%s`
ffmpeg -f video4linux2 -s vga -i /dev/video0 -vframes 3 /tmp/vid-$ts.%01d.jpg
exit 0 #important - has to exit with status 0
Cambie / dev / video0 con el dispositivo de video real de su cámara web y elija una ruta donde se guardarán las imágenes. Simplemente elijo /tmp
. En la versión más nueva de Ubuntu, use en avconv
lugar de ffmpeg
( sudo apt-get install libav-tools
).
Hazlo ejecutable, por ejemplo chmod +x /usr/local/bin/grabpicture
.
Prueba de ello, con sólo llamar que: /usr/local/bin/grabpicture
. Comprueba si ves archivos apareciendo /tmp/vid....jpg
.
Configure PAM para llamar a esto en cada intento fallido.
Nota: haga esto con cuidado: si esto falla, no podrá volver a acceder a su sistema de manera regular.
- Abra una ventana de terminal con acceso raíz (sudo -i) y déjela abierta, en caso de que se equivoque en los siguientes pasos.
Abra /etc/pam.d/common-auth
en su editor favorito, por ejemplo, haciendo gksudo gedit /etc/pam.d/common-auth
. Tenga en cuenta para los siguientes pasos que el orden de las líneas en este archivo es importante.
Localice la línea a continuación. Por defecto, hay una línea antes de la que tiene pam_deny.so
. En mi sistema 12.04 se ve así:
auth [success=1 default=ignore] pam_unix.so nullok_secure
En esta línea, cambie el éxito = 1 a éxito = 2 para que omita nuestro script en caso de éxito. Este es un paso importante.
Justo debajo de allí, agregue uno nuevo para llamar al script real:
auth [default=ignore] pam_exec.so seteuid /usr/local/bin/grabpicture
Guarde y cierre el archivo. No es necesario reiniciar nada.
Pruébalo.
- En una nueva ventana de terminal, como usuario normal, intente
su -l username
iniciar sesión como otro usuario con nombre de usuario username
(cambie con uno real, por supuesto). Ingrese deliberadamente la contraseña incorrecta. Compruebe si esto da como resultado una nueva imagen.
- Lo mismo que arriba, pero ahora ingrese la contraseña correcta. Comprueba si inicias sesión y no se toma una fotografía.
Si las pruebas han tenido éxito, puede cerrar sesión en su DE (Unity / KDE / ...) y debería ver lo mismo al ingresar una contraseña incorrecta desde la pantalla de inicio de sesión.