移除时的自动屏幕锁

本指南将指导你完成电脑的配置,以便在你移除Nitrokey时自动锁定你的会话。

该配置要求在两个不同的目录下创建两个文件。

要求

配置

创建``.rules``文件。

用你最喜欢的文本编辑器创建一个名为``的文件,85-nitrokey.rules``。

$ sudo editor /etc/udev/rules.d/85-nitrokey.rules

在文件中添加以下一行

ACTION=="remove", ENV{PRODUCT}=="20a0/4108/101" RUN+="/usr/local/bin/gnome-screensaver-lock"

保存文件并退出编辑器。

这个文件设置了一个新的硬件规则,在移除Nitrokey设备时执行``gnome-screensaver-lock``。

你应该根据你所使用的设备改变配置,如下所示。

  • Nitrokey Pro。``ENV{PRODUCT}=="20a0/4108/101"``<

  • Nitrokey HSM: ENV{PRODUCT}=="20a0/4230/101"

  • 硝基键存储。ENV{PRODUCT}=="20a0/4109/101"

如果您有不同的设备,并需要找出``ENV{PRODUCT}`` 字符串,可以使用以下命令找出插入时的信息:

$ udevadm monitor --property --udev

创建``gnome-screensaver-lock``脚本。

用你最喜欢的文本编辑器创建一个名为``的文件,gnome-screensaver-lock``。

$ sudo editor /usr/local/bin/gnome-screensaver-lock

添加以下文字

user=`ps axo user:30,comm | egrep "gdm-(wayland|x)" | awk '{print $1}'`

if [ -n $user ]; then
        su $user -c "/usr/bin/dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock"
fi

第一步,脚本会查找 gnome 会话的用户名,即``user``。

当它在移除Nitrokey时被调用,脚本查询``user``,切换到它的会话,并通过提示屏保画面锁定屏幕。

执行脚本

一旦全部设置完毕,执行一次脚本,它就会锁定屏幕。在第一次执行时,硝基钥匙是否被插上并不重要。

使用方法

现在,你可以通过输入密码登录到你的会话中,如果你以前没有这样做,可以(重新)插入你的Nitrokey。

下次你从电脑上拔下Nitrokey时,它将自动锁定屏幕。