授予应用程序/用户访问 USB 设备的权限

授予应用程序/用户访问 USB 设备的权限

我在 Raspbian 上运行了一个 Mono 应用程序,该应用程序通过 libusb 使用某个 USB 设备。如果我正常启动该应用程序,则无法打开该设备。如果我以 root 身份(或通过 sudo)启动该应用程序,则该应用程序会成功打开该设备。

我如何授予应用程序或用户 USB 设备的适当权限,以便应用程序不必以 root 身份启动?

答案1

要授予特定组对 USB 设备的访问权限,您必须udev在 中添加一条规则/etc/udev/rules.d/。我添加了一个名为 的文件50-MyDevice.rules,其中包含以下行:

SUBSYSTEM=="usb",ATTRS{idVendor}=="abcd",ATTRS{idProduct}=="1234",MODE="0660",GROUP="mygroup",SYMLINK+="mydevice%n"

我在哪里更换了值供应商编号产品编号与USB设备的VID和PID。特别注意每个参数后面的等号数量!

此后我重新启动了 Linux。

现在,每次我插入 USB 设备(或者如果我插入多个相同的设备),我都会得到一个名为/dev/mydevice1或 的符号链接/dev/mydevice2。这是一个指向/dev/bus/usb/001/001(在第二种情况下为 或/dev/bus/usb/001/002)的符号链接。这些符号链接的目标具有规则文件中定义的正确模式和组权限。

相关内容