我需要将一些 USB 串行设备放入特定用户组中,以便从应用程序访问它们。对于 /dev/ttyUSB 设备来说,这很简单,我只需使用 即可KERNEL="ttyUSB*", GROUP:="mygroup"
。但是,对于像 /dev/bus/usb/001/001 这样的符号链接,如何完成将其组设置为 的相同操作并不明显mygroup
。我可以通过编辑默认规则文件/etc/udev/rules.d/50-udev.rules
并GROUP="mygroup"
在 usb_device 的行中添加一个子句来实现这一点,这会在 /dev/bus/usb 中创建符号链接,但是从打包的角度来看,编辑此文件显然不是最佳选择。
那么:如何编写 udev 规则来修改由先前默认 udev 规则创建的符号链接的所有权?
(我正在使用 CentOS 5.5。)
答案1
回答了我自己的问题:显然这都是关于使用:=
而不是=
。
SUBSYSTEM=="usb_device", MODE:="0664", GROUP:="mygroup"
这位于 /etc/udev/rules.d 中的 10-usb-devices.rules 文件中。“:=”会覆盖其他规则创建的节点的权限 - 我最初错误地认为它正在创建符号链接,而实际上它正在 /dev/bus 中创建实际节点。
答案2
2 年前我就遇到过您的问题(centos 4),我找到的唯一解决方案也是修改 udev 规则。但我为它创建了一个特定文件。您是否尝试过使用特定设备创建 49-mydev.rules?
答案3
符号链接所有权并不重要,只有链接指向的文件的所有权才重要。