#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <pwd.h>


int main(int argc, char *argv[])
{
  struct passwd *pw;
  uid_t u;
 
  if (!argv[1])
   { fprintf(stderr,"Blah ...\n");
     exit(0);
   }

  pw = getpwnam("postgres");
  if (!pw)
    { fprintf(stderr, "user postgres doesn't exist\n");
      exit(0);
    }
 setuid(pw->pw_uid);
 seteuid(pw->pw_uid);

 u = geteuid();
 if( u != pw->pw_uid)
   { fprintf(stderr,"Can\'t change uid to %d\n", pw->pw_uid);
     exit(0);
   }
  system(argv[1]);

}
