我需要以 root 身份运行以下命令,而不需要在 Linux 终端上通过任何“sudo”。 。 (请不要发表“安全”评论……)
“hcitool抄送地址”
使用“sudo -S”选项应该可以完成任务。
我已获得用 c 编写的附加 sudo/pipe 代码。
#包括 #包括 #包括
int main() { std::string userPass{"myPassword"}; std::string 命令{"sudo -S ps -lf 2>/dev/null <<_EOF\n" + userPass + "\n_EOF"}; FILE *pipe = popen(command.c_str(), "r");字符*行= NULL; size_t 长度 = 0; ssize_t rlen; while( (rlen = getline(&line, &len, pipeline)) > 0) { line[--rlen] = '\0'; // 修剪尾随换行符 std::cout << line << '\n'; }
pclose(pipe);
free(line);
}
这就是我到目前为止所拥有的
FILE *cmd;
int status;
QFile *pipe;
cmd = popen("/usr/bin/sudo -S id -un 2>/dev/null", "w");
// MODIFY for c++
QString Password = "q";
QString Command =" sudo -S ps -lf 2>/dev/null <<_EOF\n" + Password + "\n_EOF";
// std::string userPass{"myPassword"};
// std::string command{"sudo -S ps -lf 2>/dev/null <<_EOF\n" + userPass + "\n_EOF"};
pipe->open ???
I could use help finishing converting the c code into C++.
我正在使用 Qt ,但通用 C++ 代码就可以了。
我不明白“选项”“ps” - 我在 man doc 中找不到它。我不确定“cmd 文件”在示例中如何工作。
谢谢