devfs 규칙보다 먼저 devd 규칙이 적용되는 이유는 무엇입니까?

devfs 규칙보다 먼저 devd 규칙이 적용되는 이유는 무엇입니까?

내 질문

지정된 공급업체 및 제품 ID가 있는 장치에 대해 실행되는 다음 줄이 있습니다 /etc/devd.conf.usbhidaction/dev/uhid*

attach 100 {
    match "vendor"  "0x046a";
    match "product" "0x0107";
    action "/usr/local/bin/sudo -u my_user /usr/bin/usbhidaction -f $device-name -p /var/hid_run/usbaction.pid -c /etc/hidactions/cherry_JK0200";
};

그리고 다음 줄/etc/devfs.rules

[tant=10]
add path 'uhid*' mode 0660 group hid

하지만 재부팅하면 devd 부분이 devfs 부분보다 먼저 실행 my_user되고 /dev/uhid*.

  • 이제 devfs가 devd보다 느린 이유는 무엇이며 이 문제를 해결하려면 어떻게 해야 합니까?
  • devfs를 구성하는 다른 방법이 있습니까?

내가 왜 이러는지

새 키보드를 구입했는데 기능 키가 추가 USB 숨김 장치입니다. 이제 볼륨 낮추기 또는 음소거와 같은 기능 키 중 하나를 누를 때 작은 스크립트를 실행하고 싶습니다.

스크립트는 my_user에서 왔기 때문에 프로그램이 루트로 실행되는 것을 원하지 않습니다. 특히 계산기나 케이스 같은 것들은요.

답변1

Devd는 rc 이전에 실행되므로 devfs 이전에 실행됩니다. 이는 작성자의 신중한 선택이었습니다. 여기에서 그의 추론을 볼 수 있습니다.http://www.usenix.org/events/bsdcon03/tech/full_papers/losh/losh.pdf(7.2장)

Devd는 완전히 사용자 공간에서 실행되며 루트 권한 문제가 없습니다.

sudo를 선택하지 않는 한 그게 바로 당신이 하는 일입니다.

사용자 공간에 값을 설정하려면 devd.conf를 사용하십시오. devfs에서 플래그를 테스트하세요.

관련 정보