나는 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
루트에 의해 실행됩니까?