Ho provato anch'io a compilarlo e mi viene fuori la tua stessa cosa.. ho provato a modificarlo ma niente. Perchè non usi !getuid() o geteuid() per determinare l'user?

Per il !getuid():

#include <stdio.h>
#include <unistd.h>

int main(){
if(!getuid()){
printf("Onori al root!\n");
}
else {
printf("Bah... guest...\n");
}
return 0;
}

Per il geteuid():

#include <stdio.h>
#include <unistd.h>

int main(){
if(geteuid()){
printf("Guest, benvenuto!\n");
}
else {
printf("We root!\n");
}
return 0;
}