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/grabpicturecon 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 avconvlugar 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-authen 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 usernameiniciar 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.