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 install
system()
system("myscrip.sh");
기대치를 읽으려면:Bash에서 루트로 로그인하고 작업을 수행하는 방법