version 1.6, 2000/06/05 14:01:15 |
version 1.7, 2000/08/13 21:58:52 |
|
|
int fd; |
int fd; |
int cmnd_status; |
int cmnd_status; |
int sudo_mode; |
int sudo_mode; |
int sudoers_flags; |
|
#ifdef POSIX_SIGNALS |
#ifdef POSIX_SIGNALS |
sigset_t set, oset; |
sigset_t set, oset; |
#else |
#else |
|
|
/* Setup defaults data structures. */ |
/* Setup defaults data structures. */ |
init_defaults(); |
init_defaults(); |
|
|
sudoers_flags = 0; |
|
if (sudo_mode & MODE_SHELL) |
if (sudo_mode & MODE_SHELL) |
user_cmnd = "shell"; |
user_cmnd = "shell"; |
else |
else |
|
|
break; |
break; |
case MODE_VALIDATE: |
case MODE_VALIDATE: |
user_cmnd = "validate"; |
user_cmnd = "validate"; |
sudoers_flags = def_ival(I_VERIFYPW); |
|
break; |
break; |
case MODE_KILL: |
case MODE_KILL: |
case MODE_INVALIDATE: |
case MODE_INVALIDATE: |
user_cmnd = "kill"; |
user_cmnd = "kill"; |
sudoers_flags = PWCHECK_NEVER; |
|
break; |
break; |
case MODE_LISTDEFS: |
case MODE_LISTDEFS: |
list_options(); |
list_options(); |
|
|
case MODE_LIST: |
case MODE_LIST: |
user_cmnd = "list"; |
user_cmnd = "list"; |
printmatches = 1; |
printmatches = 1; |
sudoers_flags = def_ival(I_LISTPW); |
|
break; |
break; |
} |
} |
|
|
|
|
add_env(!(sudo_mode & MODE_SHELL)); /* add in SUDO_* envariables */ |
add_env(!(sudo_mode & MODE_SHELL)); /* add in SUDO_* envariables */ |
|
|
/* Validate the user but don't search for pseudo-commands. */ |
/* Validate the user but don't search for pseudo-commands. */ |
validated = sudoers_lookup(sudoers_flags); |
validated = sudoers_lookup(sudo_mode); |
|
|
/* This goes after the sudoers parse since we honor sudoers options. */ |
/* This goes after the sudoers parse since we honor sudoers options. */ |
if (sudo_mode == MODE_KILL || sudo_mode == MODE_INVALIDATE) { |
if (sudo_mode == MODE_KILL || sudo_mode == MODE_INVALIDATE) { |