解锁 gnome-screensaver,而不是停用

解锁 gnome-screensaver,而不是停用

因此,我一直在尝试为我的机器创建一个 USB 密钥。

我使用过网上很多地方描述的 PAM-Usb(例如这个,基本上是到处复制粘贴的。)我明白那里发生了什么,这很巧妙。

我的问题是 - 如果我锁定屏幕(使用按钮、拔掉 USB 或使用gnome-screensaver-command -l),gnome-screensaver-command -d则不会将我带回到桌面,而是唤醒显示器。我仍然必须提供密码 - 插入 USB 时我不想这样做。

我不想关闭解锁时输入密码的提示。我希望我的电脑在插入 USB 记忆棒时可以随时自由访问,在其他情况下则需要输入密码才能访问。

那么,问题是:如何使用命令行解锁 gnome-screensaver?

PS。有趣的是:如果我使用 USB 密钥,那么登录时无需提供密码。另一方面,解锁时需要密码。我明白为什么会发生这种情况,但它看起来仍然很奇怪。

==编辑==

我忘了:我使用的是普通版(即基于 Unity 的)Ubuntu 15.04。没有进行任何与屏幕保护程序相关的修改。

答案1

Ubuntu 14.04+ 不再使用 gnome-screensaver,这就是为什么它gnome-screensaver-command -d可能无法工作的原因(可能,我不确定,但 Ubuntu 已经用新的东西替换了旧的 gnome-screensaver,该命令目前不起作用)。您可以使用 dbus 锁定和解锁您的计算机。

锁:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

开锁:

dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call --print-reply --reply-timeout=20000 /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false

它应该无需密码即可解锁。

答案2

在15.04中锁屏是用unity实现的。

似乎 libpam_usb 没有明确与 libpam 链接,因为它(错误地)认为使用它的程序已经加载了 libpam。大多数程序(即 sudo、lightdm 等)都是这种情况,但 compiz 不是。需要更改 libpam-usb 的 makefile 并重新编译才能修复此问题。

尽管作为一种解决方法,你可以编辑/usr/share/applications/compiz.desktop和替换

Exec=compiz

Exec=/bin/sh -c "LD_PRELOAD=libpam.so compiz"

相关内容