2010-11-29 191 views
8

我正在編寫一個小程序,使用Linux上的libusb-1.0與特定的USB HID產品(由供應商和產品ID標識)進行通信。現在,我必須以root身份運行程序,因爲「libusb需要寫入USB設備節點」。有沒有辦法改變我需要的設備上的權限,以便我不需要以root身份運行我的程序?訪問Linux上的USB設備(libusb-1.0)?

回答

10

在現代Linux系統上,udevdman 7 udev)會在插入USB設備時創建設備節點。添加與設備匹配的udev規則(例如,您可以通過USB供應商和產品ID進行匹配),以及設置設備節點的OWNER/GROUP/MODE

最好的方法可能是爲應該能夠訪問設備的用戶創建一個新組,然後將其設置爲udev規則中的組所有者。您可能還需要使用MODE以確保它具有組讀取/寫入權限。例如。您的規則可能會是這個樣子:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar" 
+2

,直到我說引號「0660」 – kynnysmatto 2013-10-04 21:44:59