输入错误密码后使用笔记本电脑网络摄像头拍照

输入错误密码后使用笔记本电脑网络摄像头拍照

我想设置我的笔记本电脑,以便在屏幕锁定时输入错误密码时,使用笔记本电脑的网络摄像头拍摄照片。我检查了xlock(从克斯洛克莫尔包),但在输入错误密码时没有选项运行自定义操作。

SuperUser 上有一个类似的问题,但仅针对 Windows:输入错误密码后拍照

(对于那些喜欢有趣的猫照片的人:我的笔记本电脑设置为在 3 次错误密码尝试后拍照.)

答案1

已复制这个帖子询问 Ubuntu格特夫戴克,指出由马兹在评论中。努力结束这个问题。


基于这个帖子在 Ubuntu 论坛上Bkk富矿

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

  1. 安装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( 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. 在此行中,将 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/...) 注销,并且从登录屏幕输入错误密码时您应该会看到相同的结果。

相关内容