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


72

Sto usando un computer portatile. Stavo pensando di avere un supporto nella mia macchina Ubuntu. Quando viene inserita una password errata, in seguito viene scattata una foto che rivela 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 affinché Ubuntu faccia lo stesso.

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


Un'immagine nella schermata di accesso a lightdm o qualcosa di simile a uno screensaver protetto da password (in pratica prima dell'accesso o dopo l'accesso)?
Luis Alvarado,

Sì immagine nella schermata di accesso di lightdm quando l'utente inserisce una password errata.
twister_void,

3
Soluzione "corretta" tramite PAM su Ubuntuforums . Va bene lo posterò come risposta. :)
gertvdijk,

In alternativa, installa un'applicazione di terze parti come Prey . Non funziona esattamente come richiesto, ma è specializzato nella protezione e nel recupero del computer in caso di furto.
Paddy Landau,

Non dimenticare di menzionare l'uso della webcam per scattare una foto nel caso in cui ti trovi in ​​un ambiente sensibile / protetto.
pl1nk

Risposte:


59

Sulla base di questo post sugli Ubuntuforums di BkkBonanza .

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

  1. Installa ffmpegInstalla ffmpeg , lo useremo come un modo da riga di comando per catturare le immagini della webcam. Aggiornamento : ffmpeg viene rimosso quando si aggiorna 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 esempio /usr/local/bin/grabpicturecon 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/video0con il dispositivo video reale della tua webcam e scegli un percorso in cui le foto vengono salvate - Ho solo scelto /tmp. Nella versione più recente di Ubuntu utilizzare avconvinvece di ffmpeg( sudo apt-get install libav-tools).

  3. Renderlo eseguibile, ad es chmod +x /usr/local/bin/grabpicture.

  4. Provarlo, semplicemente chiamandolo: /usr/local/bin/grabpicture. Verifica se vengono visualizzati i file in /tmp/vid....jpg.

  5. Configurare PAM per chiamare questo ad ogni tentativo fallito.

    Nota: eseguire questa operazione con attenzione: in caso contrario, non sarà possibile accedere nuovamente al sistema in modo regolare.

    1. Apri una finestra del terminale con accesso root ( sudo -i) e lasciala aperta, nel caso in cui tu rovini i passaggi successivi.
    2. Apri /etc/pam.d/common-authnel tuo editor preferito, ad es gksudo gedit /etc/pam.d/common-auth. Facendo . Tieni presente per i seguenti passaggi che conta l'ordine delle righe in questo file.
    3. Individua la riga in basso. Di default c'è una riga prima di quella con pam_deny.so. Sul mio sistema 12.04 sembra così:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. In questa riga cambia il success=1per success=2farlo saltare il nostro script in caso di successo. Questo è un passo importante.

    5. Proprio qui sotto, aggiungine uno nuovo per chiamare lo script attuale:

      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 del terminale, come utente normale, prova su -l usernamead accedere come un altro utente con nome utente username(cambia con quello reale ovviamente). Immettere deliberatamente la password errata. Controlla se questo risulta in una nuova immagine.
    2. Come sopra, ma ora inserisci la password corretta. Controlla se esegui l'accesso e non si ottiene lo scatto di una foto.
  7. Se i test hanno avuto esito positivo, è possibile disconnettersi dal proprio DE (Unity / KDE / ...) e si dovrebbe vedere lo stesso quando si immette una password errata dalla schermata di accesso.


9
È intelligente. Due domande: (1) Non dovresti usare una cartella diversa da /tmp, perché /tmpviene cancellata ogni volta che riavvii? (2) Come fai a sapere qual è il tuo attuale dispositivo video?
Paddy Landau,

6
Funziona ma volevo aggiungere 3 cose. (1) Possiamo usare / var / tmp che non viene cancellato al riavvio. (2) Procedere con cautela con questa soluzione in quanto è possibile rimanere bloccati in un ciclo infinito di "modalità grafica bassa" e / o "controllo dello stato della batteria", come lo ero io. (3) Se rimani bloccato, riavvia e accedi alla modalità di ripristino (premi il tasto sinistro del mouse); selezionare "modalità grafica fail-safe" e vedere se / è montato RW; ora passa alla shell di root; cd su /etc/pam.d; chmod common-auth in RW, modifica usando nano per rimuovere la linea aggiunta per chiamare lo script grabpicture; Salva; Uscita; riavvio.
Sri

5
Ho capito perché il mio PC si è bloccato. I passaggi da 5.3 a 5.5 nella risposta devono essere regolati in base alle righe del file common-auth. La mia common-auth aveva anche un'altra riga per pam_winbind.so tra le righe che hanno pam_unix.so e pam_deny.so. Fondamentalmente le righe di autenticazione sul "successo" devono saltare lo script di acquisizione e la riga pam_deny.so.
Sri

Sto anche provando lo stesso concetto, ma la risposta sopra menzionata non funziona mi richiede un errore grafico basso, né prende alcuna immagine né alcun messaggio di errore per tentativo sbagliato. .. Cosa fare dopo. (Gertvdijk)
SachiN,

1
forse dovrebbe essere aggiornato per usare avconv o opencv al contrario del ffmpeg ormai deprecato
RobotHumans
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.