как отключить USB-устройства на основе идентификатора поставщика в среде Linux?

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

2 Solutions collect form web for “как отключить USB-устройства на основе идентификатора поставщика в среде Linux?”

Вы можете сделать правило udev, которое отключает устройства по умолчанию, но позволяет использовать определенные идентификаторы поставщика. Создайте файл /etc/udev/rules.d/01-usblockdown.rules который содержит правило для отключения устройств:

 ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'" 

А затем правила для включения устройств, которые вы хотите разрешить (вы можете использовать ATTR{idVendor} чтобы получить идентификатор поставщика):

 ACTION=="add", ATTR{idVendor}=="0000" RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'" 

Дополнительную информацию см. В разделе «Блокировка Linux с использованием UDEV» .

(это могло бы быть лучше в качестве комментария, но мне не хватало очков, поэтому он расширил его в ответ)

Я пришел сюда, чтобы узнать, как разрешить использование всех USB-устройств, кроме как отключить определенный идентификатор поставщика и продукта. Как отключить звуковое устройство usb с udev отвечает на пример 0d8c: 000c.

Создайте /etc/udev/rules.d/disable-usb-device.rules :

 ACTION=="add", ATTR{idVendor}=="0d8c", ATTR{idProduct}=="000c", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'" 

Там есть несоответствие между ответом и комментарием ниже с RUN= vs. RUN+= , я попробовал первый, и он работал нормально.

Я ожидал, что dmesg или lusb будут сообщаться по-разному, но оба они показывают, что несанкционированное устройство получает нумерацию, как и раньше, но другие процессы / модули, которые были бы запущены автоматически, не будут работать, что было желательным эффектом. cat /sys/bus/usb/devices/1-2.2.1.1.4/authorized ( cat /sys/bus/usb/devices/1-2.2.1.1.4/authorized … например, который можно найти в dmesg) показывает, что 0 был помещен в нужное место.

  • Как я могу направить ввод с двух клавиатур на два соответствующих терминала на одном компьютере?
  • Почему у меня нет настроек hidraw в моей системе и как я могу исправить свои устройства USB?
  • Проблема с Pernicious USB-stick stall. Возврат исправления обходного пути?
  • Что означает последний выходной параметр команды lsusb -t?
  • Не удалось загрузить Chromium OS с USB-накопителя
  • Перезагрузите гайку-драйвер, когда данные устарели, устройство USB продолжает меняться
  • Не удалось загрузить модуль на событие udev
  • Что необходимо для USB-устройства, которое появится под звуком в панели управления Ubuntu?
  • Как установить backtrack 5 на USB, который не монтируется с существующей ОС
  • Как проверить загрузочный USB, созданный с помощью схемы разделов UEFI GPT
  • Как вы используете minicom с stdin и stdout?
  • Linux и Unix - лучшая ОС в мире.