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 */
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:
/* headed for exec(), assume euid == 0 */
runas_setup();
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();
#define PERM_ROOT 0x00
#define PERM_FULL_ROOT 0x01
#define PERM_USER 0x02
-#define PERM_SUDOERS 0x03
-#define PERM_RUNAS 0x04
+#define PERM_FULL_USER 0x03
+#define PERM_SUDOERS 0x04
+#define PERM_RUNAS 0x05
/*
* Shortcuts for sudo_user contents.