Ubuntu 10.10 (Maverick).
У меня проблема с запуском программы garmin_save_runs (часть пакета garmin-forerunner-tools) от имени обычного пользователя, тогда как она работает при запуске с sudo. Выполнение без sudo работало в Ubuntu 10.04 (Lucid), и я думаю, что пакет не сильно изменился, поэтому я предполагаю, что некоторые разрешения изменились с обновлением.
Я обнаружил, что можно обойти необходимость запускать программу как sudo: $ sudo setcap CAP_DAC_OVERRIDE=ep /usr/bin/garmin_save_runs
Теперь я задаюсь вопросом:
- Какие изменения произошли при переходе с Lucid на Maverick, что привело к возникновению этой проблемы?
- Хорошее ли у меня решение setcap?
- Виновата ли программа?
выдержка из strace:
open("/dev/bus/usb/001/010", O_RDWR) = -1 EACCES (Permission denied)
open("/dev/bus/usb/001/010", O_RDONLY) = 3
ioctl(3, USBDEVFS_IOCTL or USBDEVFS_IOCTL32, 0x7ffffabef170) = -1 EPERM (Operation not permitted)
close(3) = 0
open("/dev/bus/usb/001/002", O_RDWR) = -1 EACCES (Permission denied)
open("/dev/bus/usb/001/002", O_RDONLY) = 3
ioctl(3, USBDEVFS_IOCTL or USBDEVFS_IOCTL32, 0x7ffffabef170) = -1 EPERM (Operation not permitted)
close(3) = 0
open("/dev/bus/usb/001/001", O_RDWR) = -1 EACCES (Permission denied)
open("/dev/bus/usb/001/001", O_RDONLY) = 3
ioctl(3, USBDEVFS_IOCTL or USBDEVFS_IOCTL32, 0x7ffffabef170) = -1 EPERM (Operation not permitted)
close(3) = 0