=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sudo/Attic/set_perms.c,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** src/usr.bin/sudo/Attic/set_perms.c 2002/01/17 01:03:21 1.4 --- src/usr.bin/sudo/Attic/set_perms.c 2002/01/23 23:03:24 1.5 *************** *** 66,79 **** #include "sudo.h" #ifndef lint ! static const char rcsid[] = "$Sudo: set_perms.c,v 1.11 2002/01/16 21:27:09 millert Exp $"; #endif /* lint */ /* * Prototypes */ static void runas_setup __P((void)); ! static void fatal __P((char *)); #if !defined(NO_SAVED_IDS) && defined(_SC_SAVED_IDS) && defined(_SC_VERSION) /* --- 66,79 ---- #include "sudo.h" #ifndef lint ! static const char rcsid[] = "$Sudo: set_perms.c,v 1.12 2002/01/22 02:00:25 millert Exp $"; #endif /* lint */ /* * Prototypes */ static void runas_setup __P((void)); ! static void fatal __P((char *, int)); #if !defined(NO_SAVED_IDS) && defined(_SC_SAVED_IDS) && defined(_SC_VERSION) /* *************** *** 91,117 **** switch (perm) { case PERM_ROOT: if (seteuid(0)) ! fatal("seteuid(0)"); break; case PERM_FULL_ROOT: /* headed for exec() */ (void) seteuid(0); if (setuid(0)) ! fatal("setuid(0)"); break; case PERM_USER: (void) setegid(user_gid); if (seteuid(user_uid)) ! fatal("seteuid(user_uid)"); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)"); break; case PERM_RUNAS: --- 91,117 ---- switch (perm) { case PERM_ROOT: if (seteuid(0)) ! fatal("seteuid(0) failed, your operating system may have broken POSIX saved ID support\nTry running configure with --disable-saved-ids", 0); break; case PERM_FULL_ROOT: /* headed for exec() */ (void) seteuid(0); if (setuid(0)) ! fatal("setuid(0)", 1); break; case PERM_USER: (void) setegid(user_gid); if (seteuid(user_uid)) ! fatal("seteuid(user_uid)", 1); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)", 1); break; case PERM_RUNAS: *************** *** 122,134 **** else error = setuid(runas_pw->pw_uid); if (error) ! fatal("unable to change to runas uid"); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid"); /* * If SUDOERS_UID == 0 and SUDOERS_MODE --- 122,134 ---- else error = setuid(runas_pw->pw_uid); if (error) ! fatal("unable to change to runas uid", 1); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid", 1); /* * If SUDOERS_UID == 0 and SUDOERS_MODE *************** *** 139,148 **** */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && seteuid(1)) ! fatal("seteuid(1)"); } else { if (seteuid(SUDOERS_UID)) ! fatal("seteuid(SUDOERS_UID)"); } break; } --- 139,148 ---- */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && seteuid(1)) ! fatal("seteuid(1)", 1); } else { if (seteuid(SUDOERS_UID)) ! fatal("seteuid(SUDOERS_UID)", 1); } break; } *************** *** 166,185 **** case PERM_FULL_ROOT: case PERM_ROOT: if (setuid(0)) ! fatal("setuid(0)"); break; case PERM_USER: (void) setegid(user_gid); if (setreuid(0, user_uid)) ! fatal("setreuid(0, user_uid)"); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)"); break; case PERM_RUNAS: --- 166,185 ---- case PERM_FULL_ROOT: case PERM_ROOT: if (setuid(0)) ! fatal("setuid(0) failed, your operating system may have broken POSIX saved ID support\nTry running configure with --disable-setreuid", 0); break; case PERM_USER: (void) setegid(user_gid); if (setreuid(0, user_uid)) ! fatal("setreuid(0, user_uid)", 1); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)", 1); break; case PERM_RUNAS: *************** *** 190,202 **** else error = setuid(runas_pw->pw_uid); if (error) ! fatal("unable to change to runas uid"); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid"); /* * If SUDOERS_UID == 0 and SUDOERS_MODE --- 190,202 ---- else error = setuid(runas_pw->pw_uid); if (error) ! fatal("unable to change to runas uid", 1); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid", 1); /* * If SUDOERS_UID == 0 and SUDOERS_MODE *************** *** 207,216 **** */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && setreuid(0, 1)) ! fatal("setreuid(0, 1)"); } else { if (setreuid(0, SUDOERS_UID)) ! fatal("setreuid(0, SUDOERS_UID)"); } break; } --- 207,216 ---- */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && setreuid(0, 1)) ! fatal("setreuid(0, 1)", 1); } else { if (setreuid(0, SUDOERS_UID)) ! fatal("setreuid(0, SUDOERS_UID)", 1); } break; } *************** *** 233,265 **** * real and effective uidss to 0 initially. */ if (setuid(0)) ! fatal("setuid(0)"); switch (perm) { case PERM_USER: (void) setegid(user_gid); if (seteuid(user_uid)) ! fatal("seteuid(user_uid)"); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)"); break; case PERM_RUNAS: /* headed for exec(), assume euid == 0 */ runas_setup(); if (setuid(runas_pw->pw_uid)) ! fatal("unable to change to runas uid"); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid"); /* * If SUDOERS_UID == 0 and SUDOERS_MODE --- 233,265 ---- * real and effective uidss to 0 initially. */ if (setuid(0)) ! fatal("setuid(0)", 1); switch (perm) { case PERM_USER: (void) setegid(user_gid); if (seteuid(user_uid)) ! fatal("seteuid(user_uid)", 1); break; case PERM_FULL_USER: /* headed for exec() */ (void) setgid(user_gid); if (setuid(user_uid)) ! fatal("setuid(user_uid)", 1); break; case PERM_RUNAS: /* headed for exec(), assume euid == 0 */ runas_setup(); if (setuid(runas_pw->pw_uid)) ! fatal("unable to change to runas uid", 1); break; case PERM_SUDOERS: /* assume euid == 0, ruid == user */ if (setegid(SUDOERS_GID)) ! fatal("unable to change to sudoers gid", 1); /* * If SUDOERS_UID == 0 and SUDOERS_MODE *************** *** 270,279 **** */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && seteuid(1)) ! fatal("seteuid(1)"); } else { if (seteuid(SUDOERS_UID)) ! fatal("seteuid(SUDOERS_UID)"); } break; } --- 270,279 ---- */ if (SUDOERS_UID == 0) { if ((SUDOERS_MODE & 040) && seteuid(1)) ! fatal("seteuid(1)", 1); } else { if (seteuid(SUDOERS_UID)) ! fatal("seteuid(SUDOERS_UID)", 1); } break; } *************** *** 328,338 **** } static void ! fatal(str) char *str; { ! if (str) ! perror(str); exit(1); } --- 328,344 ---- } static void ! fatal(str, printerr) char *str; { ! if (str) { ! if (printerr) ! perror(str); ! else { ! fputs(str, stderr); ! fputc('\n', stderr); ! } ! } exit(1); }