Как отключить USB на основе идентификатора вендора в среде Linux?

Я хочу отключить USB на основе идентификатора поставщика в среде Linux. Я хочу разрешить только определенные USB только на основе идентификатора поставщика.

3
задан 31 January 2013 в 10:36

1 ответ

Это должно быть возможным использованием 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 Идентификаторы устройства как аргументы, и если это не отзывается эхом allow затем устройство должно быть проигнорировано, например:

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

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

Вы, вероятно, захотите изучить udevtest для экспериментирования с правилами, и, как отмечено, необходимо удостовериться мышь, клавиатура и т.д. добавлена в белый список. Можно хотеть ограничить блокирующееся правило только блочными устройствами USB путем добавления SUBSYSTEM=="block", прежде PROGRAM в исходном правиле.

1
ответ дан 31 January 2013 в 10:36

Другие вопросы по тегам:

Похожие вопросы: