我正在开发一个 Qt 应用程序,该应用程序访问某些需要 root 权限的功能(例如,访问硬件资源或某些 I/O 操作)。当我正常运行该应用程序时,出现以下错误:
错误:需要 root 权限。ioperm:操作不允许分段错误(核心转储)
但是,当我使用 sudo 执行该应用程序时,它运行良好。我不想每次都使用 sudo。有没有一种方法可以在不需要 sudo 的情况下运行此 Qt 应用程序,但仍允许它访问所需的特权函数?
我正在开发一个 Qt 应用程序,该应用程序访问某些需要 root 权限的功能(例如,访问硬件资源或某些 I/O 操作)。当我正常运行该应用程序时,出现以下错误:
错误:需要 root 权限。ioperm:操作不允许分段错误(核心转储)
但是,当我使用 sudo 执行该应用程序时,它运行良好。我不想每次都使用 sudo。有没有一种方法可以在不需要 sudo 的情况下运行此 Qt 应用程序,但仍允许它访问所需的特权函数?
您可以安装
lxqt-sudo
并创建一个 *.desktop 文件,以作为 root 用户启动所需的程序。xterm
为您的 Qt 应用程序)在您的应用启动器中,应该是一个名为 的新程序
MyRootApp
。启动此程序时会弹出 sudo 提示符您可以使应用程序可执行 setuid root。这就是需要 root 权限的系统应用程序(如其
sudo
本身)的运行方式。您必须将文件所有者更改为 root 并打开 setuid 位:
参数
u+s
是chmod
设置 setuid 位的内容。顺便说一句。无论它是否是 Qt 应用程序,这都适用于任何二进制可执行文件(不是脚本)。