Puis-je obliger la webcam à prendre une photo lorsqu'un mot de passe incorrect est saisi?

72

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 de pouvoir le faire sur Mac. Est-il possible d'écrire un script pour Ubuntu pour faire la même chose.

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

twister_void
la source
Une image sur l’écran de connexion lightdm ou quelque chose comme un économiseur d’écran protégé par mot de passe (essentiellement avant 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
3
"Propre" solution via PAM sur les Ubuntuforums . Ok je vais poster cela comme une réponse. :)
gertvdijk
Vous pouvez également installer une application tierce telle que Prey . 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 pour prendre une photo au cas où vous vous trouvez dans un environnement sensible / protégé.
Pl1nk

Réponses:

59

Basé sur ce post sur les Ubuntuforums de BkkBonanza .

Cette approche utilise PAM et fonctionne pour toutes les tentatives de connexion infructueuses. Avec SSH, un terminal virtuel ou via l’écran de connexion normal, peu importe, tout est géré par PAM à la fin.

  1. Installez ffmpegInstaller ffmpeg , nous allons l’utiliser comme un moyen de saisir les images de la webcam en ligne de commande. Mise à jour : ffmpeg est supprimé lors de la 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éez un petit script quelque part, /usr/local/bin/grabpictureavec par exemple 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
    

    Changez le /dev/video0avec le périphérique vidéo réel de votre webcam et choisissez un chemin où les images sont enregistrées - je choisis simplement /tmp. Dans la nouvelle version d'Ubuntu, utilisez avconvplutôt que ffmpeg( sudo apt-get install libav-tools).

  3. Rendez-le exécutable, par exemple 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 appelle à chaque tentative infructueuse.

    Remarque: procédez 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 feriez vos bêtises dans les étapes suivantes.
    2. Ouvrez /etc/pam.d/common-authdans votre éditeur préféré, par exemple en le faisant gksudo gedit /etc/pam.d/common-auth. N'oubliez pas, 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, il ressemble à ceci:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    4. Dans cette ligne, changez le success=1pour success=2qu'il passe notre script si vous réussissez. 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 normal, essayez su -l usernamede vous connecter en tant qu'utilisateur avec un nom d'utilisateur username(changez avec un nom d'utilisateur bien sûr). Entrez délibérément le mauvais mot de passe. Vérifiez si cela entraîne une nouvelle image.
    2. Comme 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 incorrect à partir de l'écran de connexion.

Gertvdijk
la source
9
C'est malin. Deux questions: (1) Ne devriez-vous pas utiliser un dossier autre que /tmp, car /tmpest effacé à chaque redémarrage? (2) Comment dites-vous quel est votre périphérique vidéo?
Paddy Landau
6
Cela fonctionne mais je voulais ajouter 3 choses. (1) Nous pouvons utiliser / var / tmp qui n’est pas effacé au redémarrage. (2) Marchez avec cette solution avec précaution car il est possible de rester bloqué dans une boucle infinie de "mode graphique faible" et / ou de "vérification de l'état de la batterie", comme je l'étais auparavant. (3) Si vous êtes bloqué, redémarrez et passez en mode de récupération (appuyez sur la touche Maj gauche). sélectionnez "mode graphique de sécurité" et voyez si / est monté RW; maintenant déposer à shell racine; cd à /etc/pam.d; chmod common-auth to RW, éditez en utilisant nano pour supprimer la ligne ajoutée pour appeler le script grabpicture; enregistrer; sortie; redémarrer.
Sri
5
J'ai compris pourquoi mon PC était resté bloqué. Les étapes 5.3 à 5.5 de la réponse doivent être ajustées en fonction des lignes du fichier common-auth. 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
Je tente également d’utiliser le même concept, mais la réponse susmentionnée ne fonctionne pas, mais cela ne me prend aucune erreur graphique, ni aucune image ni aucun message d’erreur pour une tentative erronée. .. Que faire ensuite. (janvier)
SachiN
1
devrait peut-être être mis à jour pour utiliser avconv ou opencv par opposition à la ffmpeg maintenant obsolète
RobotHumans