GNU / LinuxでベンダーIDに基づいてUSBデバイスを無効にする方法は?

GNU / LinuxでベンダーIDに基づいてUSBデバイスを無効にする方法は?

存在するその質問誰かがすべてのUSBデバイスをブラックリストに追加し、特定のデバイスのみを許可しようとしています。

この問題では、すべてのUSBデバイスを許可しますが、ドライバが1つのcdc_acm特定のデバイスタイプ(例:LEGO®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.1sysfsにも現れるのではなく使用されるのかわかりませんでした。しかし、私は(私に)効果的なソリューションを共有したいと思いました。環境:2014年10月末現在、Debianは不安定です(つまり、ほぼDebian jessieと同じです)。

おすすめ記事