Чи можу я змусити веб-камеру сфотографуватися, коли введено неправильний пароль?


72

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

Я шукав навколо, і єдине, що я знайшов - це зробити це на Macs. Чи можливо написати сценарій для Ubuntu, щоб зробити те саме.

Якщо можливо, що таке сценарій чи програмне забезпечення для цього.


Зображення на екрані входу в lightdm чи щось на зразок заставки, захищеної паролем (в основному перед входом у систему чи після входу)?
Луїс Альварадо

Так, зображення на екрані входу в lightdm, коли користувач вводив неправильний пароль.
twister_void

3
"Належне" рішення через PAM на Ubuntuforums . Гаразд, я опублікую це як відповідь. :)
gertvdijk

Крім того, встановіть сторонні додатки, такі як Prey . Це не так, як ви просите, але спеціалізується на захисті та відновленні вашого комп’ютера у разі крадіжки.
Падді Ландау

Не забудьте згадати про використання веб-камери для зйомки, якщо ви перебуваєте у чутливому / захищеному середовищі.
pl1nk

Відповіді:


59

На основі цієї публікації на Ubuntuforums від BkkBonanza .

Це підхід, що використовує PAM, і він буде працювати для всіх невдалих спроб входу. Використовуючи SSH, віртуальний термінал або через звичайний екран входу, не має значення, оскільки в кінцевому підсумку все обробляється PAM.

  1. Встановивши ffmpegВстановіть 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 / ...), і ви повинні побачити те саме, ввівши неправильний пароль з екрана входу.


9
Це розумно. Два питання: (1) Чи не слід використовувати ви іншу папку /tmp, оскільки /tmpвона очищується при кожному перезавантаженні? (2) Як ви можете сказати, що таке власне відеопристрій?
Падді Ландау

6
Це працює, але я хотів додати 3 речі. (1) Ми можемо використовувати / var / tmp, який не очищається при перезавантаженні. (2) Стежте за цим рішенням обережно, оскільки можна застрягнути в нескінченному циклі "режиму низької графіки" та / або "перевірки стану акумулятора", як я був. (3) Якщо ви застрягли, перезавантажте та перейдіть у режим відновлення (натисніть ліву зміну); виберіть "режим безвідмовної графіки" і подивіться, чи / монтується RW; тепер перепадаємо до кореневої оболонки; cd до /etc/pam.d; chmod common-auth на RW, редагування за допомогою nano для видалення рядка, доданого для виклику скрипта grabpicture; зберегти; Вхід; перезавантажити.
Шрі

5
Я зрозумів, чому мій ПК застряг. Кроки від 5.3 до 5.5 у відповіді потрібно відкоригувати відповідно до того, якими рядками є файл загального аут-файлу. У мого спільного auth також був ще один рядок для pam_winbind.so між рядками, що мають пам_unix.so та pam_deny.so. В основному рядки auth на "успіх" повинні пропустити сценарій захоплення, а також рядок pam_deny.so.
Шрі

Я також намагаюся з цією ж концепцією, але вищезгадана відповідь не працює, це сприймає мене з низькою графічною помилкою, а також не приймає зображення, ані повідомлення про помилку за неправильну спробу. .. Що робити далі. (gertvdijk)
SachiN

1
можливо, слід оновити для використання avconv або opencv на відміну від застарілого ffmpeg
RobotHumans
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.