#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <stdio.h>#include <fcntl.h>#include <sys/stat.h>intmain(intargc,char**argv,char**envp){pid_tpid;charbuf[256];structstatstatbuf;/* Get the parent's /proc entry, so we can verify its user id */snprintf(buf,sizeof(buf)-1,"/proc/%d",getppid());/* stat() it */if(stat(buf,&statbuf)==-1){printf("Unable to check parent process\n");exit(EXIT_FAILURE);}/* check the owner id */if(statbuf.st_uid==0){/* If root started us, it is ok to start the shell */execve("/bin/sh",argv,envp);err(1,"Unable to execve");}printf("You are unauthorized to run this program\n");}