나는 setuid와 setgid에 문제가있다. 이 C 코드를 작성했습니다.
int main() {
setuid(0);
setgid(0);
system("/path/to/script.sh");
return 0;
}
gcc를 사용하여 컴파일 :
gcc test.c -o test
그런 다음 나는 chmod +s. 에서 script.sh 오직 id 명령. 다음은 test 실행 파일 :
-rwxr-sr-x 1 root root 8464 mag 15 20:14 test
프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
uid=1000(user) gid=1000(user) gruppi=1000(user)
왜 출력을 얻지 못하는거야? id 루트에 의해 실행됩니까?