Могу ли я сделать веб-камеру сфотографироваться при вводе неправильного пароля?

70

Я использую ноутбук. Я думал иметь поддержку в моей машине Ubuntu. Когда вводится неправильный пароль, снижается изображение, показывающее, кто пытается получить доступ.

Я искал вокруг, и единственное, что я нашел, это материал, который нужно сделать на Mac. Возможно ли написать сценарий для Ubuntu, чтобы сделать то же самое.

Если возможно, то что такое скрипт или Программное обеспечение, чтобы это произошло.

    
задан twister_void 09.02.2013 в 20:59
источник

1 ответ

58

На основе этого сообщения на Ubuntuforums на BkkBonanza

.

Это подход с использованием PAM и будет работать для всех неудачных попыток входа в систему. Используя SSH, виртуальный терминал или обычный экран входа в систему, это не имеет значения, поскольку все обрабатывается PAM в конце.

  1. Установите ffmpeg , мы будем использовать это как способ командной строки для захвата изображений веб-камеры. Обновить : ffmpeg удаляется при обновлении до Ubuntu 14.04. Мы можем использовать avconv вместо ffmpeg в приведенном ниже скрипте. Не нужно ничего устанавливать отдельно.

  2. Создайте небольшой скрипт где-нибудь, например. /usr/local/bin/grabpicture со следующим содержимым:

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

    Измените /dev/video0 на фактическое видеоустройство вашей веб-камеры и выберите путь, в котором сохраняются фотографии - я просто выбираю /tmp . В более новой версии Ubuntu используйте avconv вместо ffmpeg ( sudo apt-get install libav-tools ).

  3. Сделать его исполняемым, например. chmod +x /usr/local/bin/grabpicture .

  4. Протестируйте его, просто назовите его: /usr/local/bin/grabpicture . Проверьте, отображаются ли файлы в /tmp/vid....jpg .

  5. Настройте PAM для вызова этого при каждой неудавшейся попытке.

    Примечание: сделайте это внимательно - если это не удается, вы не сможете получить доступ к своей системе снова обычным способом.

    1. Откройте окно терминала с корневым доступом ( sudo -i ) и оставьте его открытым - на всякий случай, если вы закроете следующие шаги.
    2. Откройте /etc/pam.d/common-auth в вашем любимом редакторе, например. выполнив gksudo gedit /etc/pam.d/common-auth . Имейте в виду следующие шаги, которые имеют порядок строк в этом файле.
    3. Найдите строку ниже. По умолчанию есть одна строка до , содержащая pam_deny.so . В моей системе 12.04 это выглядит так:

      auth    [success=1 default=ignore]      pam_unix.so nullok_secure
      
    4. В этой строке измените success=1 на success=2 , чтобы он пропустил наш скрипт на основе succes. Это важный шаг.

    5. Прямо внизу, добавьте новый, чтобы вызвать фактический скрипт:

      auth    [default=ignore]                pam_exec.so seteuid /usr/local/bin/grabpicture
      
    6. Сохраните и закройте файл. Не нужно ничего перезапускать.

  6. Проверьте его.

    1. В новом окне терминала, как обычный пользователь, попробуйте su -l username войти в систему как другой пользователь с именем пользователя username (естественно, с изменением). Умышленно введите неверный пароль. Проверьте, не приведет ли это к новому изображению.
    2. То же, что и выше, но теперь введите правильный пароль. Убедитесь, что вы вошли в систему, и это не приводит к тому, что снимок сделан.
  7. Если тесты прошли успешно, вы можете выйти из своего DE (Unity / KDE / ...), и вы должны увидеть то же самое, когда вводите неправильный пароль из экрана входа.

ответ дан gertvdijk 09.02.2013 в 21:51