udevでデバイスファイルのパーミッション制御
LinuxマシンにUSBでデジカメを繋いでgphoto2でファイル保存するのはいいけど、一般ユーザでは権限がなく毎回rootになるのは面倒。
なもんでちょっと調べてみた。
# lsusb Bus 004 Device 003: ID 04cb:01c1 Fuji Photo Film Co., Ltd Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000
Bus 004 の Device 003 にデバイスが割り当てられてるのでもっと詳しく表示
# udevinfo -a -p /sys/class/usb_device/usbdev4.3/ ... looking at parent device '/devices/pci0000:00/0000:00:10.4/usb4/4-4': KERNELS=="4-4" SUBSYSTEMS=="usb" DRIVERS=="usb" ... ATTRS{product}=="USB PTP Camera" ...
いろいろ表示されたけど ATTRS{product} がこのデバイス特定にふさわしそうなので
# vi /etc/udev/rules.d/z99_mydevice.rules BUS="usb", ATTRS{product}=="USB PTP Camera", MODE="0666"
とやってデフォルトの権限を666にしてみた。
/etc/init.d/udev restartしたあとUSBケーブル差しなおしたら、めでたく一般ユーザでいろいろできて一安心。
他のデバイスでも同様にやればいいんだろうなぁ、きっと。