Posso fare in modo che la webcam scatti una foto quando viene inserita una password errata?

71

Sto usando un laptop. Stavo pensando di avere un supporto nella mia macchina Ubuntu. Quando viene immessa una password errata, viene scattata una foto in seguito rivelando chi ha cercato di ottenere l'accesso.

Ho cercato in giro e l'unica cosa che ho trovato è roba da fare su Mac. È possibile scrivere uno script per Ubuntu per fare lo stesso.

Se possibile, che cos'è uno script o un software per farlo accadere.

    
posta twister_void 09.02.2013 - 20:59

1 risposta

58

Basato su questo post su Ubuntuforums da BkkBonanza

.

Questo è un approccio che usa PAM e funzionerà per tutti i tentativi di accesso falliti. Utilizzando SSH, un terminale virtuale o tramite la normale schermata di accesso, non importa quanto tutto viene gestito da PAM alla fine.

  1. Installa ffmpeg , useremo questo come metodo a linea di comando per catturare le immagini della webcam. Aggiornamento : ffmpeg viene rimosso quando si esegue l'aggiornamento a Ubuntu 14.04. Possiamo usare avconv al posto di ffmpeg nello script seguente. Non è necessario installare nulla separatamente.

  2. Crea un piccolo script da qualche parte, ad es. /usr/local/bin/grabpicture con il seguente contenuto:

    #!/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
    

    Cambia /dev/video0 con il dispositivo video effettivo della tua webcam e scegli un percorso in cui salvare le immagini: scelgo solo /tmp . Nella nuova versione di Ubuntu usa avconv invece di ffmpeg ( sudo apt-get install libav-tools ).

  3. Rendilo eseguibile, ad es. % Co_de%.

  4. Provalo, basta chiamarlo: chmod +x /usr/local/bin/grabpicture . Controlla se vedi i file che appaiono in /usr/local/bin/grabpicture .

  5. Configura PAM per chiamarlo su ogni tentativo fallito.

    Nota: fai questo con attenzione - se questo non riesce, non sarai in grado di accedere di nuovo al tuo sistema in modo regolare.

    1. Apri una finestra del terminale con accesso root ( /tmp/vid....jpg ) e lasciala aperta - nel caso in cui tu rovini nei passaggi successivi.
    2. Apri sudo -i nel tuo editor preferito, ad es. facendo /etc/pam.d/common-auth . Tieni presente che per i seguenti passaggi l'ordine delle righe in questo file è importante.
    3. Trova la riga qui sotto. Di default c'è una riga prima quella con gksudo gedit /etc/pam.d/common-auth . Sul mio sistema 12.04 appare così:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
      
    4. In questa riga cambia il pam_deny.so in success=1 per far saltare il nostro script al successo. Questo è un passaggio importante.

    5. Subito sotto, aggiungi uno nuovo per chiamare lo script vero e proprio:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
      
    6. Salva e chiudi il file. Non è necessario riavviare nulla.

  6. Provalo.

    1. In una nuova finestra di terminale, come utente normale, prova success=2 per accedere come un altro utente con nome utente su -l username (cambiare con uno attuale ovviamente). Immettere deliberatamente la password errata. Controlla se questo produce una nuova immagine.
    2. Come sopra, ma ora inserisci la password corretta. Verifica di aver effettuato l'accesso e che non si ottiene una foto.
  7. Se i test sono riusciti, puoi uscire dal tuo DE (Unity / KDE / ...) e dovresti vedere lo stesso quando inserisci una password errata dalla schermata di accesso.

risposta data gertvdijk 09.02.2013 - 21:51

Leggi altre domande sui tag