2011-11-22 162 views
0

我正在用C语言编程,并且使用libusb库的Anjuta小应用程序。libusb-1.0通用usb设备的写入权限

为了某种目的,libusb需要写权限。 该协议已经在本主题中讨论过:“在Linux上访问USB设备(libusb-1.0)?”。
也许主题解决方案工作正常(我还没有尝试过),但我想我的应用程序访问所有USB设备,而不是特定的。
我试着在libusb-1.0.so文件中设置一个suid位,这个文件有一个root拥有者但是libusbopen函数,例如,回答“libusb需要再次写入USB设备节点”。 我不想以root用户的身份构建整个anjuta项目,但到目前为止,这是这个libusb-1.0问题的唯一解决方案。

是否有一种解决方案,可以在不修改udev行为的情况下获得对一般usb设备的inode(例如热插拔pendrive)的写访问权限?

回答

0

我找到了解决方法。也许它不好,但它似乎运作良好。 我在udev配置目录(/etc/udev/rules.d)中添加了权限规则文件(020_permissions.rules),其中唯一规则是哪个Unix组应拥有所有USB设备节点。

文件内容是:

SUBSYSTEM=="usb", GROUP=="group to belong my user" 

我希望这可以帮助你,如果你也有类似的libusb问题。