Udev
UDEV 規則未觸發
我已經在這個網站和其他網站上瀏覽了 10 個答案,試圖調試我的 udev 規則,但無濟於事。規則很簡單:我想在拔掉Yubikey時鎖定螢幕。
- 我的規則在文件中
/etc/udev/rules.d/98-yubikey.rules
。- 我已經嘗試了這兩種
# udevadm control --reload-rules && udevadm trigger
方法,只需重新啟動電腦即可更新規則。以下是我到目前為止嘗試過的規則,其中沒有一個會鎖定螢幕(我已經測試過腳本確實在執行時鎖定了螢幕)。
ACTION=="remove", SUBSYSTEM=="input", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", RUN+="/home/user/bin/lock_screen", OWNER="user"
ACTION=="add", SUBSYSTEM=="input", ENV{ID_VENDOR_ID}=="XXXX", ENV{ID_MODEL_ID}=="YYYY", RUN+="/home/user/bin/lock_screen", OWNER="user"
- 這些項目的各種組合,有或沒有子系統/所有者(以及子系統作為 USB 而不是輸入)。
我有一個配置為執行相同操作的系統,它看起來像這樣:
SUBSYSTEM=="input", ACTION=="remove", RUN+="/usr/local/sbin/yubikey_gone"
然後腳本
/usr/local/sbin/yubikey_gone
包含:#!/bin/sh if [ "x$ID_MODEL" != "xYubico_Yubikey_II" ]; then exit 0 fi exec su vandry -c "DISPLAY=:0.0 gnome-screensaver-command --lock"
這會在任何輸入設備被拔出時呼叫腳本,然後腳本在繼續之前測試它是否確實是 Yubikey。這不是正確的解決方案,但我一定很難讓它直接在 udev 配置文件中與設備模型測試一起工作(我不記得為什麼 - 很長時間沒有觸及腳本)。這不是最好的方法,但它至少可以工作。