Я хочу отключить USB на основе идентификатора поставщика в среде Linux. Я хочу разрешить только определенные USB только на основе идентификатора поставщика.
Это должно быть возможным использованием 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
в исходном правиле.