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


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

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

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


69
2018-02-09 19:59


происхождения


Изображение на экране входа в lightdm или что-то вроде защищенной паролем заставки (в основном до входа в систему или после входа в систему)? - Luis Alvarado♦
Да изображение на экране входа в Lightdm, когда пользователь вводит неверный пароль. - twister_void
«Правильное» решение через PAM на Ubuntuforums, Хорошо, я отправлю это как ответ. :) - gertvdijk
В качестве альтернативы можно установить стороннее приложение, например добыча, Он не делает точно так, как вы просите, но он специализируется на защите и восстановлении вашего компьютера в случае кражи. - Paddy Landau
Не забудьте упомянуть использование веб-камеры с изображением, если вы находитесь в чувствительной / защищенной среде. - pl1nk


ответы:


Основано на эта почта на Ubuntuforums by BkkBonanza,

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

  1. устанавливать FFmpeg Install 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 чтобы он пропустил наш скрипт по успешному завершению. Это важный шаг.

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

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

  6. Попробуй это.

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


57
2018-02-09 20:51



Это умно. Два вопроса: (1) Не следует использовать папку, отличную от /tmp, потому как /tmp очищается каждый раз при перезагрузке? (2) Как вы сообщаете, каково ваше фактическое видеоустройство? - Paddy Landau
Это работает, но я хотел добавить 3 вещи. (1) Мы можем использовать / var / tmp, который не очищается при перезагрузке. (2) Протектор с этим решением тщательно, так как можно застрять в бесконечном цикле «низкого графического режима» и / или «проверять состояние батареи», как и я. (3) Если вы застряли, перезагрузитесь и перейдите в режим восстановления (нажмите левый сдвиг); выберите «режим отказоустойчивой графики» и посмотрите, установлен ли / RW; теперь перейдем к корневой оболочке; cd to /etc/pam.d; chmod common-auth to RW, редактировать с помощью nano, чтобы удалить добавленную строку для вызова сценария grabpicture; спасти; Выход; перезагружать. - Sri
Я понял, почему мой компьютер застрял. Шаги с 5.3 по 5.5 в ответе должны быть скорректированы в соответствии с строками, которые имеет файл common-auth. У моего common-auth также была другая строка для pam_winbind.so между строками, имеющими pam_unix.so и pam_deny.so. В основном строки auth на «success» должны пропускать сценарий захвата, а также строку pam_deny.so. - Sri
Я также пытаюсь использовать ту же концепцию, но вышеприведенный ответ не работает, он требует низкой графической ошибки, ни для изображения, ни для сообщения об ошибке для неправильной попытки. .. Что делать дальше. (Gertvdijk) - SachiN
должен быть обновлен для использования avconv или opencv в отличие от устаревших ffmpeg - RobotHumans