Kann ich die Webcam dazu bringen, ein Bild aufzunehmen, wenn ein falsches Passwort eingegeben wurde?

72

Ich benutze einen Laptop. Ich dachte an eine Unterstützung in meinem Ubuntu-Rechner. Wenn ein falsches Passwort eingegeben wird, wird zu einem späteren Zeitpunkt ein Bild aufgenommen, aus dem hervorgeht, wer versucht hat, Zugriff zu erhalten.

Ich habe mich umgesehen und das Einzige, was ich gefunden habe, ist, was ich auf Macs tun kann. Ist es möglich, ein Skript für Ubuntu zu schreiben, um dasselbe zu tun.

Wenn möglich, was ist dann ein Skript oder eine Software, um dies zu ermöglichen.

twister_void
quelle
Ein Bild auf dem lightdm-Anmeldebildschirm oder so etwas wie ein passwortgeschützter Bildschirmschoner (grundsätzlich vor dem Anmelden oder nach dem Anmelden)?
Luis Alvarado
Ja Bild auf dem lightdm-Anmeldebildschirm, wenn der Benutzer ein falsches Passwort eingegeben hat.
twister_void
3
"Richtige" Lösung via PAM auf dem Ubuntuforum . Okay, ich werde dies als Antwort posten. :)
gertvdijk
Installieren Sie alternativ eine Drittanbieteranwendung wie Prey . Es funktioniert nicht genau so, wie Sie es wünschen, ist jedoch auf den Schutz und die Wiederherstellung Ihres Computers bei Diebstahl spezialisiert.
Paddy Landau
Vergessen Sie nicht, die Verwendung der Webcam zu erwähnen, wenn Sie sich in einer sensiblen / geschützten Umgebung befinden.
15.

Antworten:

59

Basiert auf diesem Beitrag auf dem Ubuntuforum von BkkBonanza .

Dies ist ein Ansatz, der PAM verwendet und bei allen fehlgeschlagenen Anmeldeversuchen funktioniert. Bei Verwendung von SSH, einem virtuellen Terminal oder über den regulären Anmeldebildschirm spielt es keine Rolle, da letztendlich alles von PAM verwaltet wird.

  1. Wenn Sie ffmpegInstallieren Sie ffmpeg installieren , wird dies als Befehlszeilenmethode zum Abrufen der Webcam-Bilder verwendet. Update : ffmpeg wird beim Upgrade auf Ubuntu 14.04 entfernt. Wir können avconv anstelle von ffmpeg im folgenden Skript verwenden. Sie müssen nichts separat installieren.

  2. Erstellen Sie irgendwo ein kleines Skript, zB /usr/local/bin/grabpicturemit folgendem Inhalt:

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

    Ändere das /dev/video0mit dem tatsächlichen Videogerät deiner Webcam und wähle einen Pfad, unter dem die Bilder gespeichert werden - ich wähle einfach /tmp. In der neueren Version von Ubuntu verwenden Sie avconvstatt ffmpeg( sudo apt-get install libav-tools).

  3. Machen Sie es ausführbar, z chmod +x /usr/local/bin/grabpicture.

  4. Testen Sie es, indem Sie es einfach anrufen: /usr/local/bin/grabpicture. Überprüfen Sie, ob Dateien in angezeigt werden /tmp/vid....jpg.

  5. Konfigurieren Sie PAM so, dass dies bei jedem fehlgeschlagenen Versuch aufgerufen wird.

    Hinweis: Gehen Sie vorsichtig vor - wenn dies fehlschlägt, können Sie nicht regelmäßig wieder auf Ihr System zugreifen.

    1. Öffnen Sie ein Terminalfenster mit root-Zugriff ( sudo -i) und lassen Sie es geöffnet - nur für den Fall, dass Sie in den nächsten Schritten Fehler machen.
    2. Öffnen Sie /etc/pam.d/common-authin Ihrem Lieblingseditor, z gksudo gedit /etc/pam.d/common-auth. B. indem Sie . Beachten Sie bei den folgenden Schritten, dass die Reihenfolge der Zeilen in dieser Datei von Bedeutung ist.
    3. Suchen Sie die Zeile darunter. Standardmäßig steht eine Zeile vor der mit pam_deny.so. Auf meinem 12.04 System sieht es so aus:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. Ändern Sie in dieser Zeile das success=1zu success=2, damit unser Skript bei Erfolg übersprungen wird. Dies ist ein wichtiger Schritt.

    5. Fügen Sie unten ein neues hinzu, um das eigentliche Skript aufzurufen:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
    6. Speichern und schließen Sie die Datei. Sie müssen nichts neu starten.

  6. Probier es aus.

    1. Versuchen Sie su -l usernamein einem neuen Terminalfenster als normaler Benutzer, sich als ein anderer Benutzer mit Benutzername anzumelden username(ändern Sie dies natürlich mit einem tatsächlichen). Geben Sie absichtlich das falsche Passwort ein. Überprüfen Sie, ob dies zu einem neuen Bild führt.
    2. Das gleiche wie oben, aber jetzt das richtige Passwort eingeben. Überprüfen Sie, ob Sie angemeldet sind und kein Bild aufgenommen wird.
  7. Wenn die Tests erfolgreich waren, können Sie sich von Ihrem DE abmelden (Unity / KDE / ...). Dies sollte auch bei der Eingabe eines falschen Passworts im Anmeldebildschirm angezeigt werden.

gertvdijk
quelle
9
Das ist schlau. Zwei Fragen: (1) Sollten Sie keinen anderen Ordner als verwenden /tmp, da dieser /tmpbei jedem Neustart gelöscht wird? (2) Woran erkennt man das tatsächliche Videogerät?
Paddy Landau
6
Das funktioniert, aber ich wollte 3 Dinge hinzufügen. (1) Wir können / var / tmp verwenden, das beim Neustart nicht gelöscht wird. (2) Gehen Sie mit dieser Lösung vorsichtig um, da es möglich ist, in einer Endlosschleife des "Low-Graphics-Modus" und / oder "Überprüfen des Batteriezustands" zu stecken, wie ich es war. (3) Wenn Sie nicht weiterkommen, starten Sie den Computer neu und rufen Sie den Wiederherstellungsmodus auf (drücken Sie die linke Umschalttaste). Wählen Sie "Failsafe Graphics Mode" und prüfen Sie, ob / RW gemountet ist. jetzt zur Wurzelhülle fallen lassen; cd to /etc/pam.d; chmod common-auth to RW, editiere mit nano, um die Zeile zu entfernen, die hinzugefügt wurde, um das Grabpicture-Skript aufzurufen; sparen; Ausfahrt; neustarten.
Sri
5
Ich habe herausgefunden, warum mein PC stecken geblieben ist. Die Schritte 5.3 bis 5.5 in der Antwort müssen an die Zeilen der common-auth-Datei angepasst werden. Mein common-auth hatte auch eine andere Zeile für pam_winbind.so zwischen den Zeilen mit pam_unix.so und pam_deny.so. Grundsätzlich müssen die auth-Zeilen für "success" das Capture-Skript sowie die pam_deny.so-Zeile überspringen.
Sri
Ich habe auch versucht, das gleiche Konzept, aber die oben genannte Antwort funktioniert nicht. Es führt zu einem geringen Grafikfehler. Weder wird ein Bild noch eine Fehlermeldung für einen falschen Versuch angezeigt. .. Was macht man als nächstes. (gertvdijk)
SachiN
1
sollte vielleicht aktualisiert werden, um avconv oder opencv zu verwenden, im Gegensatz zu dem jetzt veralteten ffmpeg
RobotHumans