web-dev-qa-db-ja.com

Linux環境でベンダーIDに基づいてUSBを無効にする方法は?

Linux環境でベンダーIDに基づいてusbを無効にします。ベンダーIDのみに基づいて特定のusbのみを許可したい。

3
subbarao

これはudevルールを使用して可能になりますが、おそらく簡単ではなく、いくつかの実験が必要になります。マウスとキーボードの動作をブロックするなど、誤って誤った操作を行って、ライブUSBスティックでの復元が必要になる可能性があります。私はこれらのコマンドをテストしていません、注意書きです。

優先度の低い番号で新しいファイルを作成します。たとえば、次の内容を持つ/lib/udev/rules.d/20-block-usb.rules

BUS=="usb", PROGRAM="/bin/filter_usb.sh %s{idVendor} %s{idProduct}", RESULT!="allow", OPTIONS+="ignore_device"

USBデバイスが挿入されると、/bin/filter_usb.shが、デバイスのvendorおよびproduct IDを引数として呼び出され、allowをエコーし​​ない限り、デバイス無視する必要があります。例:

#!/bin/sh
vendor=$1
product=$2

if [ "$vendor" = "0123" ]; then
    if [ "$product" = "4567" ]; then
        echo allow
    fi
fi

おそらく、ルールを試すためにudevtestを調べる必要があります。また、前述のように、マウス、キーボードなどがホワイトリストに登録されていることを確認する必要があります。元のルールでPROGRAMの前にSUBSYSTEM=="block",を追加することにより、ブロッキングブロックをUSBブロックデバイスのみに制限することができます。

1
chronitis