问题:
我如何以普通用户身份以 root 权限运行由 root 拥有的脚本?
让我们以一个文件夹为例/path/to/folder
。首先我确保该文件夹和所有内容都归 root 所有:
sudo chown -R root:root /path/to/folder
然后我尝试了不同的方法向其他用户授予权限:
sudo chmod -R +x /path/to/folder
sudo chmod -R u+s /path/to/folder
sudo chmod -R 4755 /path/to/folder
但我想要运行的脚本仍然给我:
Can't open /dev/mem: Permission denied
详细的
我有一个 Flask 应用程序,它根据传入的请求改变 LED 灯带的颜色。
无论使用哪个库,访问 GPIO 始终需要 root 权限。
我想改变这一点有两个原因:
我正在使用 venv 并运行该应用程序,这
sudo
会导致使用全局安装的 python 包而不是 venv 中的包。在完成状态下,应用程序应该在 apache 中运行。到目前为止,我还没有让 apache 使用 sudo 运行应用程序。
我想集中讨论主要问题,而不是 Flask 或 led-strip 库。
提前致谢!
编辑
我研究了建议的问题,我的用户在 gpio 组中,dev/gpiomem
文件夹存在并具有完全相同的权限,但我仍然收到/dev/mem
权限被拒绝错误。
现在我发现,我使用的包显然是/dev/mem
专门使用的并且不支持/dev/gpiomem
。(https://github.com/jgarff/rpi_ws281x)
我现在正在寻找替代方案,并愿意接受建议:-)