main()
{
 int uid = 0;
 if( setuid(uid) == 0 && setgid(uid) ){
 execl("/bin/bash"@`"bash"@`NULL);
 exit(1);
 else
printf("ぐはは\n");
}これをコンパイルしてsecret_bashと言う名前の実行可能ファイルを作りました。
suidを立てて一般ユーザーnaotoで実行すると次のようになりました

[naoto@ naoto]$ ls -l secret_bash
-rwsr-xr-x 1 root root 36751 Jan 13 17:15 secret_bash*
[naoto@ naoto]$ ./secret_bash
[root@ naoto]# whoami
root

今度はソースのuid = 0 を uid = 500 (naotoのUID)に変え、naotoでコンパイルしました。
出来上がったsecret_bashをユーザーhogeで実行してみました。

[hoge@ hoge]$ ls -l secret_bash
-rwsr-xr-x 1 naoto naoto 36767 Jan 13 17:25 secret_bash*
[hoge@ hoge]$ ./secret_bash
[hoge@ hoge]$ whoami
hoge


hogeがnaoto権限でbashを動かすことを期待していたのですが、うまくいきません。
どうしてなんでしょうか?
暇な人教えてください。