我正在使用 buildroot 构建一个系统,该系统将有一个网页来使用 php 控制树莓派的 GPIO 引脚。为此,我正在写入(和读取)位于 /sys/class/gpio/.. 中的内核文件。问题是 apache 无权在此类目录和文件中写入或读取。我可以通过将所有目录权限更改为:
chmod a+rx dir_name
但是每次系统打开时都必须执行此操作,因为系统关闭时 /sys/... 权限会重置为默认值。
所以我想知道解决这个问题最简单的方法是什么?不要忘记,在某些时候,我可能会在 /sys/class/gpio/export 中写入一个 GPIO 编号,创建一个新目录(/sys/class/gpio/gpioN/,其中 N 是引脚编号),其中的新文件需要权限也变了。
我对这类东西不是很熟练,但我能想到让它工作的唯一方法是在启动时运行一个脚本,该脚本将导出所有 GPIO 引脚(写入 /sys/class/gpio/export),然后更改所有目录和文件的权限。问题是我不知道如何执行此类脚本,除了它需要位于 /etc/init.d 目录中。我查看了该目录中的一些文件,但无法理解它们,它是用什么语言编写的?
编辑1
我在一篇文章中发现,要查找 apache 用户,我可以运行以下命令:
ps aux | egrep '(apache|httpd)'
其输出如下:
135 root /usr/bin/httpd -k start
138 daemon /usr/bin/httpd -k start
139 daemon /usr/bin/httpd -k start
140 daemon /usr/bin/httpd -k start
1133 root egrep (apache|http)