如何在 Raspbian 上永久设置设备读写权限?

如何在 Raspbian 上永久设置设备读写权限?

我使用的是 Raspbian(为 Raspberry Pi 制作的发行版,基于 Debian)。

我有一些使用 i 2 c的脚本。

通常只有 root 对 i 2 c具有读写权限。

我使用此命令为普通用户添加 i2c r/w 权限:

# chmod a+rw /dev/i2c-*

但是,重新启动后,这些设备将具有默认权限。

是什么最好的办法让我的 i2c 可供普通用户永久读写?

有没有比将我的脚本添加到 init.d 来在我的 Raspberry Pi 启动后运行上面的命令更“优雅”的方法?

答案1

您可以使用以下方法执行此操作乌德夫。创建一个/etc/udev/rules.d后缀为 的文件.rules,例如local.rules,并向其中添加如下行:

ACTION=="add", KERNEL=="i2c-[0-1]*", MODE="0666"

MODE=0666rw 代表所有者、组、世界。您可以替代或同时执行的操作是为节点指定 GID,例如:

GROUP="pi"

如果您使用此值而不是该MODE设置,则将应用默认值 0660(所有者和组的 rw),但组将为pi,因此用户pi将具有 rw 权限。也可以用OWNER同样的方式指定。

注意===上面的区别。前者是为了测试某件事是否正确,后者是为了设定它。不要忘记=in来混淆它们==

您必须重新启动才能生效。


《编写 udev 规则》参考

答案2

有些设备组的组所有者不是 root。其中包括磁盘、输入、声音、tty 和串行设备。对于这些,您可以通过将用户添加到组来提供对整个设备组的访问权限。

/dev/ttyUSB0例如,为用户提供访问权限pi。你的ls -l设备并得到,

crw-rw---- 1 root dialout 4, 64 Jan 19 01:36 /dev/ttyUSB0

由于该组是dialout,因此您将其添加pi到该dialout组中/etc/group

dialout:x:20:pi

然后,用户pi可以注销并重新登录以激活新的组成员身份。

相关内容