在Qt QProcess中运行sudo命令

时间:2015-08-18 03:47:04

标签: c++ qt

我正在Qt中开发一个软件,我在其中创建了一个终端。我通过QProcess运行不同的命令,但是当我运行root命令时,它会在终端中输入密码。我试图通过sudo运行,但它只接受终端中的密码。有没有办法从其他来源提供密码,如弹出窗口小部件或文本文件?

3 个答案:

答案 0 :(得分:2)

你可以尝试

  • 以root身份运行您的应用程序(这实际上是一个非常糟糕的主意!)
  • 编辑sudoers文件,并将要运行的命令添加到此文件中。然后你可以运行这些命令,如sudo run_x_cmd,没有密码,即你的QProcess可以运行这些命令,不会要求你输入密码。

答案 1 :(得分:1)

我创建了一个带有“bash”作为程序的QProcess。

然后写信给它:

echo mypassword | sudo -S ifconfig eth0 192.168.1.123\n

答案 2 :(得分:0)

为文本文件添加密码以获取命令的输入是一个非常糟糕的主意,因为它会削弱安全性。

sudo的1.8版本提供了一个插件架构,允许您从应用程序链接到它,并可以为您提供解决方案。

可以找到sudo插件API的SDK in the documentation