C++에서 "sudo -S" 명령을 사용하여 터미널에 비밀번호 입력을 우회하는 방법은 무엇입니까? [복사]

C++에서 "sudo -S" 명령을 사용하여 터미널에 비밀번호 입력을 우회하는 방법은 무엇입니까? [복사]

Linux 터미널에서 "sudo"를 전달하지 않고 루트로 다음 명령을 실행해야 합니다. . ('안전' 댓글을 게시하지 마세요...)

"hcitool CC 주소"

"sudo -S" 옵션을 사용하면 됩니다.

c로 작성된 추가 sudo/pipe 코드가 있습니다.

#include#include#포함

int main() { std::string userPass{"myPassword"}; std::string command{"sudo -S ps -lf 2>/dev/null <<_EOF\n" + userPass + "\n_EOF"}; FILE *pipe = popen(command.c_str(), "r"); 문자 *line = NULL; ssize_t rlen; while( (rlen = getline(&line, &len, 파이프라인)) > 0) [--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 문서에서 찾을 수 없습니다. 예제에서 "cmd 파일"이 어떻게 작동하는지 잘 모르겠습니다.

감사해요

관련 정보