C/C++: 루트로 여러 명령 실행

C/C++: 루트로 여러 명령 실행

C 프로그램에서 명령을 실행하고 싶습니다. 그러나 일부 폴더를 만들려면 루트 액세스 권한이 필요합니다. 다음 명령을 실행합니다.

system("echo <rootpass> | sudo cd <folder> && make install");

<rootpass> is given by the user (and thus the command should only execute if the user has root priviliges). 

그러나 이 명령을 실행하면 시스템이 코드 256(EPERM /* 작업이 허용되지 않음*/)을 반환합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

문제를 해결하려면 expect, sudo및 가 포함된 스크립트를 작성해야 하며 , 함수는 스크립트를 호출합니다. 예를 들면 다음과 같습니다.make installsystem()

system("myscrip.sh");

기대치를 읽으려면:Bash에서 루트로 로그인하고 작업을 수행하는 방법

관련 정보