¿Puedo hacer que la cámara web tome una foto cuando se ingresa una contraseña incorrecta?

69

Estoy usando una computadora portátil. Estaba pensando en tener un soporte en mi máquina Ubuntu. Cuando se ingresa una contraseña incorrecta, se toma una foto más tarde que revela quién ha estado tratando de obtener acceso.

He buscado y lo único que he encontrado es material para hacer esto en Mac. Es posible escribir un script para que Ubuntu haga lo mismo.

Si es posible, ¿qué es un script o Software para que esto suceda?

    
pregunta twister_void 09.02.2013 - 20:59

1 respuesta

57

Basado en esta publicación en los Ubuntuforums por BkkBonanza .

Este es un enfoque que usa PAM y funcionará para todos los intentos fallidos de inicio de sesión. Usando SSH, un terminal virtual o a través de la pantalla de inicio de sesión normal, no importa ya que todo es manejado por PAM al final.

  1. Instalar ffmpeg , vamos a usar esto como una línea de comando para agarrar las imágenes de la webcam. Actualización : ffmpeg se elimina cuando actualiza a Ubuntu 14.04. Podemos usar avconv en lugar de ffmpeg en el script siguiente. No es necesario instalar nada por separado.

  2. Crea un pequeño script en alguna parte, p. /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 el /dev/video0 con el dispositivo de video real de su cámara web y elija una ruta donde se guardan las imágenes; simplemente elijo /tmp . En la versión más reciente de Ubuntu use avconv en lugar de ffmpeg ( sudo apt-get install libav-tools ).

  3. Hacerlo ejecutable, p. chmod +x /usr/local/bin/grabpicture .

  4. Pruébelo, simplemente llamándolo: /usr/local/bin/grabpicture . Compruebe si ve archivos que aparecen en /tmp/vid....jpg .

  5. Configura PAM para invocar esto en cada intento fallido.

    Nota: haga esto con cuidado: si esto no funciona, no podrá acceder nuevamente a su sistema de manera regular.

    1. Abra una ventana de terminal con acceso de root ( sudo -i ) y déjela abierta, en caso de que se equivoque en los próximos pasos.
    2. Abra /etc/pam.d/common-auth en su editor favorito, p. haciendo gksudo gedit /etc/pam.d/common-auth . Tenga en cuenta los siguientes pasos que importa el orden de las líneas en este archivo.
    3. Busque la línea a continuación. Por defecto, hay una línea antes 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 success=1 a success=2 para que omita nuestro script en succes. Este es un paso importante.

    5. Justo debajo de allí, agregue uno nuevo para llamar al guión 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ébelo.

    1. En una nueva ventana de terminal, como usuario regular, pruebe su -l username para iniciar sesión como otro usuario con nombre de usuario username (cambie con uno real, por supuesto). Introduzca deliberadamente la contraseña incorrecta. Verifique si esto da como resultado una imagen nueva.
    2. Lo mismo que arriba, pero ahora ingrese la contraseña correcta. Comprueba si inicias sesión y no da lugar a que se tome una foto.
  7. Si las pruebas tuvieron éxito, puede desconectarse de su DE (Unity / KDE / ...) y debería ver lo mismo al ingresar una contraseña incorrecta desde la pantalla de inicio de sesión.

respondido por el gertvdijk 09.02.2013 - 21:51

Lea otras preguntas en las etiquetas