我正在Qt中开发一个软件,我在其中创建了一个终端。我通过QProcess
运行不同的命令,但是当我运行root命令时,它会在终端中输入密码。我试图通过sudo
运行,但它只接受终端中的密码。有没有办法从其他来源提供密码,如弹出窗口小部件或文本文件?
答案 0 :(得分:2)
你可以尝试
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 。