UDEV 규칙이 트리거되지 않았습니다.

UDEV 규칙이 트리거되지 않았습니다.

나는 이 사이트와 내 udev 규칙을 디버깅하려는 다른 사이트에서 수십 개의 답변을 살펴봤지만 소용이 없었습니다. 규칙은 간단합니다. 화면이 잠겨 있을 때 화면을 잠그고 싶습니다.유빅플러그가 뽑혔습니다.

  • 내 규칙은 파일에 있습니다 /etc/udev/rules.d/98-yubikey.rules.
  • 두 가지 방법을 모두 시도했고 # udevadm control --reload-rules && udevadm trigger컴퓨터를 다시 시작하면 규칙이 업데이트되었습니다.

지금까지 시도한 규칙은 다음과 같습니다. 어느 것도 화면을 잠그지 않습니다(스크립트가 실행될 때 실제로 화면을 잠그는 것을 테스트했습니다).

  1. ACTION=="remove", SUBSYSTEM=="input", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", RUN+="/home/user/bin/lock_screen", OWNER="user"
  2. ACTION=="add", SUBSYSTEM=="input", ENV{ID_VENDOR_ID}=="XXXX", ENV{ID_MODEL_ID}=="YYYY", RUN+="/home/user/bin/lock_screen", OWNER="user"
  3. 하위 시스템/소유자(및 입력 대신 USB로서의 하위 시스템) 유무에 관계없이 이러한 프로젝트의 다양한 조합.

답변1

동일한 작업을 수행하도록 구성된 시스템이 있는데 다음과 같습니다.

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 구성 파일에서 직접 장치 모델 테스트를 수행하는 데 문제가 있는 것 같습니다(이유는 기억나지 않습니다. 오랫동안 스크립트를 건드리지 않았습니다). 최선의 접근 방식은 아니지만 적어도 작동합니다.

관련 정보