Tomar una foto con la cámara web de una computadora portátil después de ingresar una contraseña incorrecta

10

Me gustaría configurar mi computadora portátil para que si se ingresa una contraseña incorrecta cuando la pantalla está bloqueada, se toma una foto usando la cámara web de la computadora portátil. Examiné xlock(del paquete xlockmore ), pero no hay ninguna opción para ejecutar una acción personalizada cuando se ingresa una contraseña incorrecta.

Hay una pregunta similar en SuperUser, pero solo se dirige a Windows: tomar una foto después de ingresar una contraseña incorrecta .

(Para aquellos a quienes les gustan las fotos divertidas de gatos: mi computadora portátil está configurada para tomar una foto después de 3 intentos de contraseña incorrecta ).

Petr Pudlák
fuente
2
¿Has revisado este github.com/jeroennijhof/pam_script
Hristo Mohamed
77
es posible que tenga una respuesta aquí también askubuntu.com/questions/253189/…
mazs
@mazs Gracias, eso es más o menos lo que estaba buscando.
Petr Pudlák
Ahora entiendo por qué todos esos tipos de hackers están trabajando con sudaderas en una habitación oscura.
Utku

Respuestas:

4

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.

  1. 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.

  2. 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).

  3. Hazlo ejecutable, por ejemplo chmod +x /usr/local/bin/grabpicture.

  4. Prueba de ello, con sólo llamar que: /usr/local/bin/grabpicture. Comprueba si ves archivos apareciendo /tmp/vid....jpg.

  5. 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.

    1. 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.
    2. 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.

    3. 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
      
    4. 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.

    5. Justo debajo de allí, agregue uno nuevo para llamar al script real:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
      
    6. Guarde y cierre el archivo. No es necesario reiniciar nada.

  6. Pruébalo.

    1. 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.
    2. Lo mismo que arriba, pero ahora ingrese la contraseña correcta. Comprueba si inicias sesión y no se toma una fotografía.
  7. 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.

Centimane
fuente