Фотосъемка с помощью веб-камеры ноутбука после ввода неверного пароля

10

Я хотел бы настроить свой ноутбук таким образом, чтобы при вводе неправильного пароля при заблокированном экране была сделана фотография с помощью веб-камеры ноутбука. Я проверил xlock(из пакета xlockmore ), но нет возможности запустить настраиваемое действие при вводе неправильного пароля.

В SuperUser есть похожий вопрос, но он касается только Windows: фотографирование после ввода неверного пароля .

(Для тех, кто любит забавные фотографии кошек: Мой ноутбук настроен на съемку после 3 попыток ввода неверного пароля .)

Петр Пудлак
источник
2
Вы проверяли этот github.com/jeroennijhof/pam_script
Христо Мохамед,
7
Вы могли бы получить ответ здесь, а askubuntu.com/questions/253189/...
МАЗС
@mazs Спасибо, это более или менее то, что я искал.
Петр Пудлак
Теперь я понимаю, почему все эти хакеры работают в толстовках в темной комнате.
Утку

Ответы:

4

Скопировал этот пост на Ask Ubuntu от gertvdijk , на который указал mazs в комментариях. В попытке закрыть этот вопрос.


Основано на этом посте на 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. Откройте окно терминала с root-доступом (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. В этой строке измените успех = 1 на успех = 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 / ...), и вы должны увидеть то же самое при вводе неверного пароля с экрана входа в систему.

Centimane
источник