Ubuntu 10.10(特立獨行)。
我以普通使用者身分執行程式 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 解決方案好嗎?
- 程序有問題嗎?
斯特萊斯摘錄:
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