Folks,
I am seeing something I don’t understand about USB device permissions on Linux. I have two Centos 9 systems, each connected to 3 USB devices from Measurement Computing.
On the system called 13ide I needed to install a udev rules file in order to give these USB devices world write permission.
This is part of the rules file:
(base) [epics@13ide ~]$ more /etc/udev/rules.d/50-uldaq.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0076", GROUP="adm", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="007f", GROUP="adm", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0085", GROUP="adm", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0086", GROUP="adm", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="008a", GROUP="adm", MODE="0666"
lsusb shows that the devices are on bus 002, devices 005, 007, and 008.
(base) [epics@13ide ~]$ lsusb
Bus 002 Device 009: ID 0557:2259 ATEN International Co., Ltd LCD Console V1.3.124
Bus 002 Device 006: ID 0557:2259 ATEN International Co., Ltd LCD Console V1.3.124
Bus 002 Device 004: ID 0557:8021 ATEN International Co., Ltd Hub
Bus 002 Device 008: ID 09db:013e Measurement Computing Corp. USB-1808X
Bus 002 Device 007: ID 09db:009d Measurement Computing Corp. USB-3104
Bus 002 Device 005: ID 09db:0127 Measurement Computing Corp. USB-CTR08
This shows that those devices have permission 666 and are owned by the “adm” group.
(base) [epics@13ide ~]$ ls -l /dev/bus/usb/002
total 0
crw-rw-r-- 1 root root 189, 128 Sep 19 11:45 001
crw-rw-r-- 1 root root 189, 129 Sep 19 11:45 002
crw-rw-r-- 1 root root 189, 130 Sep 19 11:45 003
crw-rw-r-- 1 root root 189, 131 Sep 19 11:45 004
crw-rw-rw- 1 root adm 189, 132 Sep 19 11:45 005
crw-rw-r-- 1 root root 189, 133 Sep 19 11:45 006
crw-rw-rw- 1 root adm 189, 134 Sep 19 11:45 007
crw-rw-rw- 1 root adm 189, 135 Sep 19 11:45 008
crw-rw-r-- 1 root root 189, 136 Sep 19 11:45 009
This makes sense to me because permission 666 and group “adm” are in the 50-uldaq.rules file.
However, I have another system which does not have a udev rules file in that location.
[epics@13idc ~]$ ls -l /etc/udev/rules.d/
total 0
On that system the devices are on bus 001, devices 004, 005, and 006.
[epics@13idc udev]$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 010: ID 1604:10c0 Tascam Dell Integrated Hub
Bus 001 Device 009: ID 413c:a102 Dell Computer Corp. iDRAC Virtual NIC
Bus 001 Device 007: ID 1604:10c0 Tascam Dell Integrated Hub
Bus 001 Device 003: ID 1604:10c0 Tascam Dell Integrated Hub
Bus 001 Device 006: ID 09db:013e Measurement Computing Corp. USB-1808X
Bus 001 Device 005: ID 09db:009d Measurement Computing Corp. USB-3104
Bus 001 Device 004: ID 09db:0127 Measurement Computing Corp. USB-CTR08
Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The following shows that these devices also have permissions 666 and are in the “adm” group.
[epics@13idc udev]$ ls -l /dev/bus/usb/001
total 0
crw-rw-r-- 1 root root 189, 0 Sep 19 12:09 001
crw-rw-r-- 1 root root 189, 1 Sep 19 12:09 002
crw-rw-r-- 1 root root 189, 2 Sep 19 12:09 003
crw-rw-rw- 1 root adm 189, 3 Sep 19 12:09 004
crw-rw-rw- 1 root adm 189, 4 Sep 19 12:09 005
crw-rw-rw- 1 root adm 189, 5 Sep 19 12:09 006
crw-rw-r-- 1 root root 189, 6 Sep 19 12:09 007
crw-rw-r-- 1 root root 189, 8 Sep 19 12:09 009
crw-rw-r-- 1 root root 189, 9 Sep 19 12:09 010
I don’t understand this, since there is no rules file. How did it know to assign these permissions and group? Is there another mechanism by which USB devices get permissions
assigned?
Thanks,
Mark