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

69

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 tente 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.

    
posée twister_void 09.02.2013 - 20:59
la source

1 réponse

57

Basé sur cet article sur 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 standard, cela n’a pas d’importance car tout est géré par PAM à la fin.

  1. Installez ffmpeg , nous allons l’utiliser comme une 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
    

    Modifiez le /dev/video0 avec le périphérique vidéo réel de votre webcam et choisissez le chemin où les images 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 simplement en l'appelant: /usr/local/bin/grabpicture . Vérifiez si des fichiers apparaissent dans /tmp/vid....jpg .

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

    Remarque: faites cela avec précaution - si cela échoue, vous ne pourrez plus accéder à votre système de manière régulière.

    1. Ouvrez une fenêtre de terminal avec un accès root ( sudo -i ) et laissez-la ouverte - juste au cas où vous foiriez les étapes suivantes.
    2. Ouvrez /etc/pam.d/common-auth dans votre éditeur favori, par ex. en faisant gksudo gedit /etc/pam.d/common-auth . Gardez à l’esprit pour 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 celle 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, modifiez le success=1 en success=2 pour qu’il saute notre script en cas de succès. C'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. Testez-le.

    1. Dans une nouvelle fenêtre de terminal, en tant qu’utilisateur normal, essayez su -l username pour vous connecter en tant qu’autre utilisateur avec le nom d’utilisateur username (changez avec un utilisateur réel bien sûr). Entrez délibérément le mauvais mot de passe. Vérifiez si cela donne une nouvelle image.
    2. Comme ci-dessus, mais entrez maintenant le mot de passe correct. Vérifiez si vous vous connectez et que cela ne provoque pas de prise de vue.
  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.

réponse donnée gertvdijk 09.02.2013 - 21:51
la source

Lire d'autres questions sur les étiquettes