![GNU/Linux에서 공급업체 ID를 기반으로 USB 장치를 비활성화하는 방법은 무엇입니까?](https://linux55.com/image/58768/GNU%2FLinux%EC%97%90%EC%84%9C%20%EA%B3%B5%EA%B8%89%EC%97%85%EC%B2%B4%20ID%EB%A5%BC%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20USB%20%EC%9E%A5%EC%B9%98%EB%A5%BC%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
존재하다그 질문누군가 모든 USB 장치를 블랙리스트에 추가하고 특정 장치만 허용하려고 합니다.
이 문제에서 우리는 모든 USB 장치를 허용하지만 드라이버가 cdc_acm
하나의 특정 장치 유형(예:레고® NXT 브릭플래시 모드는 사용하면 안 되지만( fwflash
장치에 대한 원시 액세스가 필요하므로) 드라이버는 Arduino 보드에 계속 액세스하여 /dev/ttyACM0
,교육 환경NXT 및 Arduino 하드웨어에 액세스하세요.
답변1
몇 가지 속임수를 쓴 후 udev 규칙을 사용하여 이 작업을 수행할 수 있었습니다( lsusb
플래시 모드에서 장치의 공급업체 및 제품 ID 찾기 사용).
$ cat /etc/udev/rules.d/nxt.rules
# disable NXT in flash mode
ACTION=="add", ATTR{idVendor}=="03eb", ATTR{idProduct}=="6124", RUN="/bin/sh -c '/bin/echo -n $kernel:1.0 | /usr/bin/tee /sys/bus/usb/drivers/cdc_acm/unbind | /usr/bin/logger -t nxt-flashmode'"
이 규칙은 NXT 블록이 플래시 모드로 삽입되거나 삽입된 동안 플래시 모드로 들어갈 때 트리거됩니다. 잡는 것을 막지는 못하지만 , 장치 에 접근할 수 cdc_acm
있도록 장치를 해제하라고 즉시 지시합니다 .fwflash
:1.0
나는 그것이 무엇인지, 왜 그것이 :1.1
sysfs에도 나타나는 대신에 사용되는지 알지 못했습니다 . 그러나 나는 (나에게) 효과적인 솔루션을 공유하고 싶었습니다. 환경: 2014년 10월 말 현재 데비안은 불안정합니다(즉, 거의 데비안 jessie와 같습니다).