Простой вопрос: как добавить правило для флэш-накопителей usb только в каталог /lib/udev/rules.d/?
Например, если я хочу разрешить вставлять только флэш-накопители USB для моего ПК. Или разрешите только мою флешку. Есть ли какой-либо тип устройства / grupot для этой цели?
Может ли кто-нибудь предоставить пример для noob, пожалуйста? Надеюсь, это легко решить:)
Я ответил на аналогичный вопрос с примером:
Запуск скрипта при обнаружении ввода / вывода
Используйте эту команду,
udevadm monitor --property
Вставьте USB и проверьте свойство, которое является общим для устройств, которые вы хотите использовать, например:
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
Затем создайте свое правило
sudo gedit /etc/udev/rules.d/96-myusb.rules
с этими значениями в
ACTION=="add", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk", ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-add.sh"
ACTION=="remove", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk",ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-remove.sh"
Файл правил влияет только на те устройства, которые соответствуют ENV{ID_TYPE} и ENV{ID_USB_DRIVER}. Это не повлияет на какое-либо другое устройство. Если вы хотите ограничить остальные устройства, возможно, вы можете создать правило, которое соответствует остальным устройствам, и ничего не делает в RUN.
Если вы хотите запустить действие только тогда, когда определенный USB-диск устройство подключено к определенному порту USB, попробуйте добавить в файл правил ENV {DEVPATH} = "yourUSBPATH". Замените yourUSBPATH на путь, который udevadm monitor --property сообщает при подключении устройства к порту, который вы хотите использовать. Я не тестировал это, но я думаю, что это логичный подход.
Я ответил на аналогичный вопрос с примером:
Запуск скрипта при обнаружении ввода / вывода
Используйте эту команду,
udevadm monitor --property
Вставьте USB и проверьте свойство, которое является общим для устройств, которые вы хотите использовать, например:
ID_TYPE=disk
ID_USB_DRIVER=usb-storage
Затем создайте свое правило
sudo gedit /etc/udev/rules.d/96-myusb.rules
с этими значениями в
ACTION=="add", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk", ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-add.sh"
ACTION=="remove", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk",ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-remove.sh"
Файл правил влияет только на те устройства, которые соответствуют ENV{ID_TYPE} и ENV{ID_USB_DRIVER}. Это не повлияет на какое-либо другое устройство. Если вы хотите ограничить остальные устройства, возможно, вы можете создать правило, которое соответствует остальным устройствам, и ничего не делает в RUN.
Если вы хотите запустить действие только тогда, когда определенный USB-диск устройство подключено к определенному порту USB, попробуйте добавить в файл правил ENV {DEVPATH} = "yourUSBPATH". Замените yourUSBPATH на путь, который udevadm monitor --property сообщает при подключении устройства к порту, который вы хотите использовать. Я не тестировал это, но я думаю, что это логичный подход.