version 1.3, 2002/01/16 18:09:13 |
version 1.4, 2002/01/17 01:03:21 |
|
|
#include "sudo.h" |
#include "sudo.h" |
|
|
#ifndef lint |
#ifndef lint |
static const char rcsid[] = "$Sudo: set_perms.c,v 1.10 2002/01/15 22:47:29 millert Exp $"; |
static const char rcsid[] = "$Sudo: set_perms.c,v 1.11 2002/01/16 21:27:09 millert Exp $"; |
#endif /* lint */ |
#endif /* lint */ |
|
|
/* |
/* |
|
|
if (seteuid(user_uid)) |
if (seteuid(user_uid)) |
fatal("seteuid(user_uid)"); |
fatal("seteuid(user_uid)"); |
break; |
break; |
|
|
|
case PERM_FULL_USER: |
|
/* headed for exec() */ |
|
(void) setgid(user_gid); |
|
if (setuid(user_uid)) |
|
fatal("setuid(user_uid)"); |
|
break; |
|
|
case PERM_RUNAS: |
case PERM_RUNAS: |
/* headed for exec(), assume euid == 0 */ |
/* headed for exec(), assume euid == 0 */ |
|
|
fatal("setreuid(0, user_uid)"); |
fatal("setreuid(0, user_uid)"); |
break; |
break; |
|
|
|
case PERM_FULL_USER: |
|
/* headed for exec() */ |
|
(void) setgid(user_gid); |
|
if (setuid(user_uid)) |
|
fatal("setuid(user_uid)"); |
|
break; |
|
|
case PERM_RUNAS: |
case PERM_RUNAS: |
/* headed for exec(), assume euid == 0 */ |
/* headed for exec(), assume euid == 0 */ |
runas_setup(); |
runas_setup(); |
|
|
(void) setegid(user_gid); |
(void) setegid(user_gid); |
if (seteuid(user_uid)) |
if (seteuid(user_uid)) |
fatal("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; |
break; |
|
|
case PERM_RUNAS: |
case PERM_RUNAS: |