set-uid에 관한 질문

익명 사용자의 이미지

/etc/shadow 파일안의 암호화된 패스워드를 가져오는 프로그램을 작성했습
니다.

....
if((spp = getspnam(argv[1])) != 0) {
printf("%s's encrypted password is %s\n", argv[1], spp->sp_pwdp);
....

컴파일을 마치고 root로 실행하니 잘 동작합니다.
이 프로그램에 set-user-id 권한을 주고
[root]$chmod u+s a.out

일반사용자 권한으로 실행을 하니 작동을 안하는군요.

real user ID 와 effective user ID 에 관한 문제인것 같은데..
두개가 무슨 차이인지 잘모르겠네요.

명확한 답변 부탁드립니다.