Правило Udev соответствует любому USB-устройству хранения

Как я могу реализовать правила udev для любого подключенного USB-устройства хранения данных, а не только для определенного? Что нужно изменить в idVendor и idProduct ?

  ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0204", SYSFS{idProduct}=="6025", RUN+="/home/workspace/bash_script.sh" 

Устройство хранения находится в block подсистеме, поэтому вам понадобится SUBSYSTEM=="block" в вашем правиле, например:

 ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", \ RUN+="/path/to/script" 

Если вы используете systemd , вы можете запускать блок systemd каждый раз, когда будет добавлено запоминающее устройство USB. Создайте файл блока, например /etc/systemd/system/my-usb-rule.service :

 [Service] Type=oneshot ExecStart=/path/to/script 

и правило, например, /etc/udev/rules.d/85-my-usb-rule.rules :

 ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", \ ENV{SYSTEMD_WANTS}="my-usb-rule.service" 

Теперь udev будет запускать my-usb-rule.service (который, в свою очередь, выполнит ваш скрипт) на любом событии добавления устройства хранения USB.


Не забывайте перезагружать конфигурацию после редактирования правил / единиц:

 udevadm control --reload systemctl daemon-reload