我正在使用Qt开发软件,在其中创建了一个终端。我通过QProcess
运行不同的命令,但当我运行root命令时,它会在终端中要求密码。我尝试通过sudo
运行,但它只接受终端中的密码。是否有办法从其他来源提供密码,例如弹出窗口或文本文件?
echo mypassword | sudo -S ifconfig eth0 192.168.1.123\n
您可以尝试以下方法:
sudoers
文件并将要运行的命令添加到该文件中。然后,您可以像sudo run_x_cmd
这样运行这些命令,无需输入密码,即您的QProcess
可以运行这些命令,并且您不会被要求输入密码。为了从命令中获取输入,将密码添加到文本文件中是一个非常糟糕的想法,因为它会削弱安全性。
sudo 1.8版本提供了插件架构,允许您从应用程序中链接到它,并可能为您提供解决方案。
sudo插件API的SDK可以在文档中找到。