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

Kam*_*mil 5 permissions devices raspberry-pi raspbian

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

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

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

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

# chmod a+rw /dev/i2c-*
Run Code Online (Sandbox Code Playgroud)

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

让我的 i2c 永久可供普通用户 r/w 使用的最佳方法是什么?

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

gol*_*cks 6

您可以使用udev执行此操作。创建一个/etc/udev/rules.d带有后缀的文件.rules,例如local.rules,并在其中添加如下一行:

ACTION=="add", KERNEL=="i2c-[0-1]*", MODE="0666"
Run Code Online (Sandbox Code Playgroud)

MODE=0666是所有者、组、世界的 rw。您可以代替或与之一起做的事情是为节点指定 GID,例如:

GROUP="pi"
Run Code Online (Sandbox Code Playgroud)

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

注意上面===上面的区别。前者是测试某事是否为真,后者是设置它。不要通过忘记=in 来混淆它们==

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


《编写udev规则》参考