如何授予非 root 用户访问设备文件的权限

sj7*_*755 18 linux users permissions devices

/dev当插入特定板时,我有设备文件出现。对它的读写操作工作得很好,但为了打开设备文件,程序需要以 root 权限执行。有什么办法可以让所有非 root 用户打开这个特定的设备文件而不必使用 sudo?

TNW*_*TNW 17

是的,您可以编写 udev 规则。

/etc/udev/rules.d制作文件中30-mydevice.rules(数字必须是从 0 到 99,并且只决定脚本运行顺序;名称并不重要,它只是描述性的;.rules不过需要扩展名)

在这个例子中,我假设您的设备是基于 USB 的,并且您知道它的供应商和产品 ID(可以使用 进行检查lsusb -v),并且您使用mydevice的是用户必须在使用该设备的组。在这种情况下,这应该是文件内容:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
Run Code Online (Sandbox Code Playgroud)

MODE 等于 0664 允许设备的所有者(可能是 root)和定义的组写入设备。