我想让所有用户都能访问我的驱动程序。我希望能够将660个设备节点权限授予我的驱动节点。驱动节点是通过框架创建的,它是作为漏设备注册的一部分创建的。但是我总是得到/dev/mydev,它有600个用户/组作为root的权限。我该如何更改获得660的许可--
发布于 2015-03-14 00:00:24
您不能仅通过修改驱动程序代码来更改/dev中设备文件的权限。这是因为/dev中的文件不是由内核创建的。它们是由udev (在PC上)或其他设备管理器创建的。因此您需要处理udev才能做到这一点。更具体地说,您需要创建所谓的udev规则。
此外,如果您希望为all users对您的设备提供读/写访问权限,则需要设置666权限模式,而不是您刚才提到的660。这是因为您的设备文件以root:root作为用户/组,而在权限模式下的前两位数字是用于用户/组的。第三个数字是others,您实际上想要更改它。
考虑到所有提到的信息,您可以做下一步。创建您的udev规则文件(例如99-my-misc-dev.rules):
$ sudo vim /etc/udev/rules.d/99-my-misc-dev.rules并粘贴到此文件的下一行:
KERNEL=="mymiscdevice", MODE="0666"当然,您应该将mymiscdevice更改为设备的文件名(正如它在/dev中显示的那样)。
告诉udev重新加载所有规则:
$ sudo udevadm trigger现在,您应该看到设备文件的666权限。
注意,在嵌入式设备上,通常没有udev,但是/dev中的文件仍然是由某些设备管理器或脚本创建的。例如,如果使用BusyBox rootfs,就会有设备管理器称为mdev。您还可以在mdev中为/etc/mdev.conf创建规则。一旦创建了规则,就应该运行mdev -s命令。详情请参见这。
在Android上,这通常是在/init.rc文件中完成的(在Android中)。
https://stackoverflow.com/questions/29042313
复制相似问题