Здравствуйте! Возникла такая ситуация - имеется рутокен с ЭЦП, который подключается по средству USB. Необходимо выполнить произвольный скрипт при подключении/отключении токена. Реализовал по средству скрипта 90-rutoken.rules, имеющий следующее содержание:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0025", RUN+="/usr/bin/rutoken-inserted.sh"
SUBSYSTEM=="usb", ACTION=="remove", ENV{ID_VENDOR_ID}=="0a89", ENV{ID_MODEL_ID}=="0025", RUN+="/usr/bin/rutoken-removed.sh"
0a89 и 0025 взял из вывода команды lsusb
Bus 001 Device 009: ID 0a89:0025 Aktiv Rutoken lite
Однако же, при подключении/отключении токена (для понимания пусть будет usb-флеш) не отрабатывает нужное событие - запуск сценария.
Решил посмотреть, что происходит вообще, выполнив
sudo udevadm test --action=add /devices/pci0000:00/0000:00:14.0/usb1/1-1
Получил вывод:
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
Load module index
Network interface NamePolicy= disabled on kernel command line, ignoring.
Parsed configuration file /usr/lib/systemd/network/99-default.link
Created link configuration context.
Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/55-dm.rules
Reading rules file: /usr/lib/udev/rules.d/56-hpmud.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fly-brightness.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /usr/lib/udev/rules.d/60-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/61-kde-bluetooth-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/69-libmtp.rules
Reading rules file: /usr/lib/udev/rules.d/69-wacom.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-ipp-usb.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /usr/lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-hwclock.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /etc/udev/rules.d/90-rutoken.rules
Reading rules file: /usr/lib/udev/rules.d/91-group-floppy.rules
Reading rules file: /usr/lib/udev/rules.d/92-libccid.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/99-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/99-monitor-hotplug.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
Rules contain 196608 bytes tokens (16384 * 12 bytes), 27864 bytes strings
19654 strings (157707 bytes), 17141 de-duplicated (132357 bytes), 2514 trie nodes used
Invalid inotify descriptor.
Starting 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1 1 9'
'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1 1 9'(out) '0'
Process 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1 1 9' succeeded.
PDAC: PDPL is zero
PDAC: AUDIT is empty or invalid
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1
DEVNAME=/dev/bus/usb/001/009
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=a89/25/100
TYPE=0/0/0
BUSNUM=001
DEVNUM=009
MAJOR=189
MINOR=8
ACTION=add
SUBSYSTEM=usb
ID_VENDOR=Aktiv
ID_VENDOR_ENC=Aktiv
ID_VENDOR_ID=0a89
ID_MODEL=Rutoken_lite
ID_MODEL_ENC=Rutoken\x20lite
ID_MODEL_ID=0025
ID_REVISION=0100
ID_SERIAL=Aktiv_Rutoken_lite
ID_BUS=usb
ID_USB_INTERFACES=:0b0000:
ID_VENDOR_FROM_DATABASE=Aktiv
ID_MODEL_FROM_DATABASE=Rutoken lite
USEC_INITIALIZED=5312134048
run: '/usr/bin/rutoken-inserted.sh'
Unload module index
Unloaded link configuration context.
То есть вроде бы сценарий был запущен, но ничего не произошло. Сам скрипт rutoken-inserted.sh
работает, я его вручную запускал, дал права на исполнение.
Подскажите, пожалуйста, в чём может быть проблема?