输入错误的密码后,我可以使网络摄像头拍照吗?


72

我正在使用笔记本电脑。我当时想在我的Ubuntu计算机上提供支持。输入不正确的密码后,稍后将拍摄一张照片,揭示谁在试图获取访问权限。

我到处搜索,发现的唯一东西就是在Mac上可以做到这一点的东西。是否可以为Ubuntu编写脚本来执行相同的操作。

如果可能,那么执行此操作的脚本或软件是什么。


lightdm登录屏幕上的图片还是受密码保护的屏幕保护程序之类的图片(基本上是在登录之前还是在登录之后)?
Luis Alvarado

当用户输入错误密码时,在lightdm登录屏幕上显示为是。
twister_void 2013年

3
在Ubuntuforums上通过PAM的“适当”解决方案。好吧,我将其发布为答案。:)
gertvdijk

或者,安装第三方应用程序,例如Prey。它并没有完全按照您的要求运行,但是它专门用于在盗窃情况下保护和恢复计算机。
Paddy Landau

如果您处于敏感/受保护的环境中,请不要忘记提及使用网络摄像头拍照的情况。
pl1nk 2013年

Answers:


59

基于这个帖子在ubuntu论坛由BkkBonanza

这是一种使用PAM的方法,适用于所有失败的登录尝试。使用SSH,虚拟终端或通过常规登录屏幕,这一切都没有关系,因为最终一切都由PAM处理。

  1. 安装ffmpeg安装ffmpeg,我们将使用它作为获取网络摄像头图像的命令行方式。更新:升级到Ubuntu 14.04时,ffmpeg被删除。我们可以在以下脚本中使用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代替ffmpegsudo 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. 在这一行中,将更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)您如何分辨实际的视频设备是什么?
Paddy Landau

6
这可行,但是我想添加3件事。(1)我们可以使用/ var / tmp,该文件在重启时不会清除。(2)谨慎使用此解决方案,因为有可能像我一样陷入“低图形模式”和/或“检查电池状态”的无限循环中。(3)如果卡住,请重新启动并进入恢复模式(按向左移动);选择“故障安全图形模式”,并查看是否在RW上安装了/;现在放到root shell;cd到/etc/pam.d; 将chmod common-auth转换为RW,使用nano进行编辑以删除添加到调用抓图脚本的行;救; 出口; 重启。
斯里

5
我弄清楚了为什么我的电脑卡住了。答案中的步骤5.3至5.5需要根据common-auth文件的行数进行调整。我的common-auth在具有pam_unix.so和pam_deny.so的行之间还为pam_winbind.so提供了另一行。基本上,“成功”上的auth行需要跳过捕获脚本以及pam_deny.so行。
斯里兰卡

我也尝试使用相同的概念,但是上述答案不起作用,它使我的图形错误降低,错误尝试均不会引起任何图像或错误消息。.. 接下来做什么。(gertvdijk)
SachiN

1
应该更新为使用avconv或opencv而不是现在不建议使用的ffmpeg
RobotHumans 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.