ruid, euid, suid 질문입니다. saved uid가 반영이 안되네요;
글쓴이: lacovnk / 작성시간: 수, 2005/04/27 - 10:45오전
// b.cc
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4
5 int main(int argc, char** argv)
6 {
7 uid_t ruid,euid,suid;
8 (void)getresuid(&ruid,&euid,&suid);
9 printf("program B : RUID(%d) / EUID(%d) / SUID(%d)\n",ruid,euid,suid);
10 fflush(stdout);
11 execv("./c",NULL);
12 return 0;
13 }// c.cc
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4
5 int main(int argc, char** argv)
6 {
7 uid_t ruid,euid,suid;
8 (void)getresuid(&ruid,&euid,&suid);
9 printf("program C : RUID(%d) / EUID(%d) / SUID(%d)\n",ruid,euid,suid);
10 fflush(stdout);
11 return 0;
12 }// test chown otheruser c && chmod 4755 c ./b program B : RUID(1000) / EUID(1000) / SUID(1000) program C : RUID(1000) / EUID(1006) / SUID(1006) chown root c && chmod 4775 c ./b program B : RUID(1000) / EUID(1000) / SUID(1000) program C : RUID(1000) / EUID(0) / SUID(0)
의도는.. C에서 suid가 B의 euid인 것을 확인해보려고 했는데, 잘 안되네요; system 함수를 사용도 해보고, execv를 사용도 해봤는데.. 어떻게 하면 될까요?
Forums:


댓글 달기