/* * set id */ #include #include #include #include #include "exec.c" #include "die.c" int main(int ac, char *av[]) { struct passwd *pw; pw = getpwnam(av[1]); if (!pw) { errordie("getpwnam"); exit(EXIT_FAILURE); } if (seteuid(pw->pw_uid) == -1) { errordie("seteuid"); exit(EXIT_FAILURE); }; do_exec(2, ac, av); /* shouldn't get here... */ return EXIT_FAILURE; }