如何锁定键盘和鼠标,但不锁定Linux中的屏幕

时间:2020-03-21 11:46:12  来源:igfitidea点击:

在本教程中,将介绍如何使用“ xtrlock”实用程序锁定键盘和鼠标,而不是Linux中的屏幕。
Xtrlock是一个简单但有用的实用程序,用于锁定X显示,直到用户在键盘上输入密码为止。

安装xtrlock

大多数Linux操作系统的默认存储库中都提供xtrlock软件包。
因此,我们可以使用发行版的程序包管理器进行安装。

在Arch Linux及其衍生版本上,运行以下命令进行安装。

$sudo pacman -S xtrlock

在Fedora上:

$sudo dnf install xtrlock

在RHEL上,CentOS:

$sudo yum install xtrlock

在SUSE/openSUSE上:

$sudo zypper install xtrlock

在Debian,Ubuntu和Linux Mint上:

$sudo apt-get install xtrlock

创建键盘快捷方式以锁定X显示

一旦安装了xtrlock,请创建一个键盘快捷方式。
我们需要使用所选的按键组合来锁定键盘和鼠标。

在/usr/local/bin中创建一个名为lockkbmouse的新文件。

$sudo vi /usr/local/bin/lockkbmouse

其中添加以下几行。

#!/usr/bin/env bash
sleep 1 && xtrlock

保存文件并关闭文件。

使用以下命令将其设置为可执行文件:

$sudo chmod a+x /usr/local/bin/lockkbmouse

接下来,我们需要创建键盘快捷键来锁定kb/mouse。

在Ubuntu GNOME DE中:

在Ubuntu 20.04 LTS桌面上,转到“设置”->“键盘快捷方式”。
单击末尾的+(加号)符号。
在较旧的Ubuntu版本(如Ubuntu 18.04 LTS,台式机)上,转到系统设置->设备->键盘。

输入快捷方式的名称,然后在命令框中添加以下行,然后单击“设置快捷方式”按钮。

/usr/local/bin/lockkbmouse

我们也可以在命令框中使用此行。

bash -c "sleep 1 && xtrlock"

接下来,我们将看到以下屏幕。
键入我们选择的按键组合,以将快捷键分配给新创建的快捷键。
例如,我使用Alt + k。

要清除组合键,请按BACKSPACE键。

现在,我们将看到所选的快捷键出现在“快捷方式”框中。

这是锁定键盘和鼠标的组合键。
关闭此窗口。

xtrclock的键盘快捷键已创建。

完成后,关闭“键盘设置”窗口。

在Arch Linux MATE桌面中:

转到系统->首选项->硬件->键盘快捷键。

单击添加以创建新的快捷方式。

输入快捷方式的名称,然后在命令框中添加以下行,然后单击“应用”按钮。

bash -c "sleep 1 && xtrlock"

要分配快捷键,只需选择或者双击它,然后输入我们选择的组合键即可。
例如,我使用Alt + k。

要清除组合键,请按BACKSPACE键。
完成后,关闭“键盘设置”窗口。

使用xtrlock锁定键盘和鼠标,但不锁定屏幕

从现在开始,每当我们按下键盘快捷键(在本例中为ALT + k)时,鼠标指针都会变成一个挂锁。
现在,键盘和鼠标已被锁定,因此我们可以自由观看电影或者任何我们想看的东西。
即使孩子或者宠物触摸键盘上的某些键或者单击鼠标按钮,也无法使用。

这是运行中的xtrlock。

我们看到一个小的锁定按钮吗?
这意味着键盘和鼠标已被锁定。
即使我们移动了锁定按钮,也不会发生任何事情。
该任务将一直运行,直到我们解锁屏幕并手动将其关闭。

解锁键盘和鼠标

要解锁键盘和鼠标,只需键入密码并点击“ Enter”。
键入密码时,我们将看不到密码。
只需输入密码,然后按ENTER键。
输入正确的密码后,鼠标和键盘将开始工作。
如果输入了错误的密码,我们会听到铃声。
按ESC键清除错误的密码,然后再次重新输入正确的密码。
要删除部分键入的密码的一个字符,请按BACKSPACE或者DELETE键。

如果我永久被锁在屏幕之外怎么办?

xtrlock工具可能不适用于某些DE,例如GDM。
它可能会永久将我们锁定在屏幕之外。
请在虚拟机上对其进行测试,然后在个人或者官方桌面上进行尝试以验证其是否确实有效。
我在Arch Linux MATE桌面,Ubuntu 20.04和18.04 GNOME桌面上对此进行了测试。
它工作得很好。

以防万一,我们被永久锁定在屏幕之外,请切换到TTY(CTRL + ALT + F2),然后运行:

$sudo killall xtrlock

另外,我们可以使用chvt命令在TTY和X会话之间切换。

例如,要切换到TTY1,请运行:

$sudo chvt 1

要再次切换回X会话,请键入:

$sudo chvt 7

不同的发行版使用不同的组合键在TTY之间切换。
有关更多详细信息,请访问发行版的官方。

在GDM崩溃的情况下,即使TTY也无法访问,并且系统在到达的图形界面处挂起。
在这种情况下,我们可能需要chroot进入系统并卸载xtrlock。
你被警告了!

有关xtrlock的更多详细信息,请参见手册页。

$man xtrlock