特定のUSBポートでHIDデバイスをどのようにブロックしますか?

特定のUSBポートでHIDデバイスをどのようにブロックしますか?

セキュリティ上の理由から、特定のUSBポートで入力デバイスが機能しないようにしたいと思います。このポートでは、非入力機能(大容量記憶装置やttyUSBなど)を使用できる必要があります。入力デバイスは他のUSBポートで動作している必要があります。

「使用できません」とは、たとえば、そのデバイスが/dev/input/eventX作成されておらず、通常のフレームワーク(X11、Linuxコンソール)がデバイスの入力を許可していないことを意味します。

udevルールを使用してUSBポートを識別できます。

DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7.1/*"

しかし、無効にする方法がわかりません。

古代のudevバージョンがサポートされましたが、OPTIONS+="ignore_device"このオプションは消えました。

どうすればいいですか?

答え1

可能な入力デバイスの種類ごとに、次の規則を作成する必要があります。

  • ID_INPUT_KEYBOARD
  • ID_INPUT_KEY
  • ID_INPUT_MOUSE
  • ID_INPUT_タッチパッド
  • ID_input_tablet
  • ID_INPUT_JOYSTICK

ルールは、その名前の環境変数がnullでないかどうかをテストします。たとえば、?*1つ以上の文字がある場合にのみ、一致するglobパターンと一致します。たとえば、

ENV{ID_INPUT_KEYBOARD}=="?*"

各ルールで一致する場合は、authorizedデバイスのプロパティを0に設定します。たとえば、次のようになります。

ATTR{authorized}="0"

将来の規則によって上書きされないように、次のように置き換えることをお勧めします=:=これは一般的なルールを提供します。

ACTION=="add", DEVPATH=="...", ENV{ID_INPUT_KEYBOARD}=="?*", ATTR{authorized}:="0"

バラよりこのプレゼンテーション著者:エイドリアンクレンショー

関連情報