作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用我的 Raspberry Pi,我正在编写一个 cgi python 脚本来创建一个网页来控制我的 gpio 输出引脚。当我尝试将 RPi.GPIO 导入为 GPIO 时,我的脚本崩溃了。这是我得到的错误:
File "./coffee.py", line 7, in <module>
import RPi.GPIO as GPIO
RuntimeError: No access to /dev/mem. Try running as root!
当我使用 sudo 运行我的脚本时,我的代码运行完美,但是当我从我的 apache2 服务器的 URL 运行时,它说我没有访问/dev/mem 的权限。我已经尝试编辑 visudo 但没有用。这是我的 visudo 文件的样子:
#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(root) NOPASSWD: /usr/bin/python3 /usr/lib/cgi-bin/coffee.py *
apache2 ALL = (root) NOPASSWD: /usr/lib/cgi-bin/coffee.py
有什么方法可以通过 URL 调用以 root 身份运行我的脚本?谁能告诉我我做错了什么?
最佳答案
我发现将 www-data 添加到 gpio 用户组效果很好:
sudo usermod -aG gpio www-data
也可以将www-data添加到memory用户组:
sudo usermod -aG kmem www-data
如前所述,这是一个坏主意,但对我来说这是必要的。
关于python -/dev/mem 访问在树莓派上被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746412/
我是一名优秀的程序员,十分优秀!