【发布时间】:2015-08-18 03:47:04
【问题描述】:
我正在使用 Qt 开发一个软件,并在其中创建了一个终端。我通过QProcess 运行不同的命令,但是当我运行root 命令时,它会在终端中询问密码。我试图通过sudo 运行,但它只接受终端密码。有没有办法从弹出窗口小部件或文本文件等其他来源提供密码?
【问题讨论】:
我正在使用 Qt 开发一个软件,并在其中创建了一个终端。我通过QProcess 运行不同的命令,但是当我运行root 命令时,它会在终端中询问密码。我试图通过sudo 运行,但它只接受终端密码。有没有办法从弹出窗口小部件或文本文件等其他来源提供密码?
【问题讨论】:
我创建了一个以“bash”作为程序的 QProcess。
然后写信给它:
echo mypassword | sudo -S ifconfig eth0 192.168.1.123\n
【讨论】:
你可以试试
sudoers 文件并将您要运行的命令添加到该文件中。然后你可以在没有密码的情况下运行这些命令,例如sudo run_x_cmd,即你的QProcess 可以运行这些命令,并且不会要求你输入密码。【讨论】:
将密码添加到文本文件以获取命令的输入源是一个非常糟糕的主意,因为它会削弱安全性。
1.8 版 sudo 提供了一个插件架构,它允许您从应用程序链接到它,并可能为您提供解决方案。
sudo 插件 API 的 SDK 可以在 in the documentation 找到。
【讨论】: