移除时的自动屏幕锁¶
本指南将指导你完成电脑的配置,以便在你移除Nitrokey时自动锁定你的会话。
该配置要求在两个不同的目录下创建两个文件。
要求¶
Ubuntu 20.04或Debian 10(Buster),都安装了`Gnome显示管理器<https://wiki.gnome.org/Projects/GDM>`__。
Nitrokey Pro 2,Nitrokey Storage 2,或Nitrokey HSM 2
配置¶
创建``.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 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时,它将自动锁定屏幕。