Question Puis-je faire en sorte que la webcam prenne une photo lorsqu'un mot de passe incorrect est entré?


J'utilise un ordinateur portable. Je pensais avoir un support dans ma machine Ubuntu. Lorsqu'un mot de passe incorrect est entré, une photo est prise plus tard, révélant qui a tenté d'accéder.

J'ai fait des recherches et la seule chose que j'ai trouvée est des choses à faire sur Mac. Est-il possible d'écrire un script pour que Ubuntu fasse de même.

Si possible, qu'est-ce qu'un script ou un logiciel pour y arriver?


69
2018-02-09 19:59


origine


Une image sur l'écran de connexion de lightdm ou quelque chose comme un écran de veille protégé par mot de passe (avant la connexion ou après la connexion)? - Luis Alvarado♦
Oui image sur l'écran de connexion lightdm lorsque l'utilisateur a mis un mot de passe incorrect. - twister_void
Solution "correcte" via PAM sur les Ubuntuforums. Ok, je posterai ceci comme une réponse. :) - gertvdijk
Vous pouvez également installer une application tierce telle que Proie. Il ne fait pas exactement ce que vous demandez, mais il est spécialisé dans la protection et la récupération de votre ordinateur en cas de vol. - Paddy Landau
N'oubliez pas de mentionner l'utilisation de la webcam en prenant une photo au cas où vous vous trouvez dans un environnement sensible / protégé. - pl1nk


Réponses:


Basé sur ce post sur les Ubuntuforums par BkkBonanza.

Ceci est une approche utilisant PAM et fonctionnera pour toutes les tentatives de connexion ayant échoué. En utilisant SSH, un terminal virtuel ou via l’écran de connexion habituel, peu importe, tout est finalement géré par PAM.

  1. Installer ffmpeg Install ffmpeg, nous allons l'utiliser comme un moyen de ligne de commande pour saisir les images de la webcam. Mettre à jour: ffmpeg est supprimé lorsque vous effectuez une mise à niveau vers Ubuntu 14.04. Nous pouvons utiliser avconv à la place de ffmpeg dans le script ci-dessous. Pas besoin d'installer quoi que ce soit séparément.

  2. Créer un petit script quelque part, par exemple /usr/local/bin/grabpicture avec le contenu suivant:

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

    Changer la /dev/video0 avec le périphérique vidéo de votre webcam et choisissez un chemin dans lequel les photos sont enregistrées - je choisis simplement /tmp. Dans la nouvelle version d'Ubuntu, utilisez avconv au lieu de ffmpeg (sudo apt-get install libav-tools).

  3. Rendez-le exécutable, par ex. chmod +x /usr/local/bin/grabpicture.

  4. Testez-le en l'appelant simplement: /usr/local/bin/grabpicture. Vérifiez si vous voyez des fichiers apparaissant dans /tmp/vid....jpg.

  5. Configurez PAM pour qu'il l'appelle à chaque tentative infructueuse.

    Remarque: faites cela avec précaution - si cela ne fonctionne pas, vous ne pourrez plus accéder à votre système régulièrement.

    1. Ouvrez une fenêtre de terminal avec un accès root (sudo -i) et laissez-le ouvert - juste au cas où vous bousiller dans les prochaines étapes.
    2. Ouvrir /etc/pam.d/common-auth dans votre éditeur préféré, par ex. en faisant gksudo gedit /etc/pam.d/common-auth. Gardez à l'esprit les étapes suivantes que l'ordre des lignes dans ce fichier est important.
    3. Localisez la ligne ci-dessous. Par défaut, il y a une ligne avant celui avec pam_deny.so. Sur mon système 12.04, cela ressemble à ceci:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
      
    4. Dans cette ligne changer le success=1 à success=2 pour le faire sauter notre script sur le succès. Ceci est une étape importante.

    5. Juste en dessous, ajoutez-en un nouveau pour appeler le script actuel:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
      
    6. Enregistrez et fermez le fichier. Pas besoin de redémarrer quoi que ce soit.

  6. Essaye-le.

    1. Dans une nouvelle fenêtre de terminal, en tant qu’utilisateur régulier, essayez su -l username se connecter en tant qu'autre utilisateur avec son nom d'utilisateur username (changer avec un réel bien sûr). Entrez délibérément le mauvais mot de passe. Vérifiez si cela se traduit par une nouvelle image.
    2. Le même que ci-dessus, mais entrez maintenant le mot de passe correct. Vérifiez si vous vous connectez et que la photo ne soit pas prise.
  7. Si les tests ont réussi, vous pouvez vous déconnecter de votre DE (Unity / KDE / ...) et vous devriez voir la même chose lorsque vous entrez un mot de passe erroné depuis l'écran de connexion.


57
2018-02-09 20:51



C'est malin. Deux questions: (1) Ne devriez-vous pas utiliser un dossier autre que /tmp, car /tmp est effacé chaque fois que vous redémarrez? (2) Comment déterminez-vous votre appareil vidéo actuel? - Paddy Landau
Cela fonctionne mais je voulais ajouter 3 choses. (1) Nous pouvons utiliser / var / tmp qui n'est pas effacé au redémarrage. (2) Tread avec cette solution avec soin car il est possible de rester bloqué dans une boucle infinie de "mode graphique bas" et / ou de "vérifier l'état de la batterie", comme je l'étais. (3) Si vous êtes bloqué, redémarrez et accédez au mode de récupération (appuyez sur la touche de gauche); sélectionner "mode graphique à sécurité intégrée" et voir si / est monté RW; maintenant, passez au shell racine; cd à /etc/pam.d; chmod common-auth à RW, éditer en utilisant nano pour supprimer la ligne ajoutée pour appeler le script grabpicture; enregistrer; Sortie; redémarrer. - Sri
J'ai compris pourquoi mon PC était bloqué. Les étapes 5.3 à 5.5 de la réponse doivent être ajustées en fonction des lignes du fichier d'authentification commune. Mon common-auth avait aussi une autre ligne pour pam_winbind.so entre les lignes ayant pam_unix.so et pam_deny.so. Fondamentalement, les lignes d'authentification sur "success" doivent ignorer le script de capture ainsi que la ligne pam_deny.so. - Sri
J'essaie également le même concept mais la réponse mentionnée ci-dessus ne fonctionne pas, il me faut une faible erreur graphique, ni une image, ni un message d'erreur pour une tentative erronée. .. Que faire ensuite. (gertvdijk) - SachiN
devrait peut-être être mis à jour pour utiliser avconv ou opencv par opposition à la désormais obsolète ffmpeg - RobotHumans