普通用户无需 sudo 以 root 身份运行 Qt C++ 程序?

普通用户无需 sudo 以 root 身份运行 Qt C++ 程序?

我正在用 C++ 编写一个机器人程序,使用 Qt 作为 GUI,其中每个线程都需要访问硬件。访问硬件的库称为pigpio,它修改/dev/mem,因此需要root访问权限。

问题是用户没有 root 访问权限,而且他们正在与 GUI 交互,无论如何他们都不应该为必须输入密码而烦恼。我尝试setuid,但是Qt不支持,GTK+也不支持。用户如何在没有密码的情况下以 root 身份运行 GUI?系统是Raspberry Pi 3B+上的Ubuntu 18.04。

答案1

似乎最好的解决方案是使用 Pigpiod,而不是 Pigpio,因为守护进程可以通过添加在启动时运行

#!/bin/sh -e
pigpiod
exit 0

到文件

/etc/rc.local

不幸的是,pigpiod 的 API 不同,所以我必须重写很多代码,但测试程序正在运行。

相关内容