Ubuntu 10.10 (Maverick) /dev/bus/usb 非 root ioctl 被拒絕

Ubuntu 10.10 (Maverick) /dev/bus/usb 非 root ioctl 被拒絕

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

現在我想知道:

  1. 從 Lucid 到 Maverick 發生了什麼變化導致了這個問題?
  2. 我的 setcap 解決方案好嗎?
  3. 程序有問題嗎?

斯特萊斯摘錄:

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

相關內容