Remove PERM_FULL_USER (which is no longer used) and add PERM_FULL_ROOT
(used when exec'ing the mailer).
This commit is contained in:
33
set_perms.c
33
set_perms.c
@@ -93,19 +93,20 @@ set_perms_posix(perm, sudo_mode)
|
|||||||
if (seteuid(0))
|
if (seteuid(0))
|
||||||
fatal("seteuid(0)");
|
fatal("seteuid(0)");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PERM_FULL_ROOT:
|
||||||
|
/* headed for exec() */
|
||||||
|
(void) seteuid(0);
|
||||||
|
if (setuid(0))
|
||||||
|
fatal("setuid(0)");
|
||||||
|
break;
|
||||||
|
|
||||||
case PERM_USER:
|
case PERM_USER:
|
||||||
(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;
|
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();
|
||||||
@@ -155,25 +156,18 @@ set_perms_fallback(perm, sudo_mode)
|
|||||||
int error;
|
int error;
|
||||||
|
|
||||||
switch (perm) {
|
switch (perm) {
|
||||||
|
case PERM_FULL_ROOT:
|
||||||
case PERM_ROOT:
|
case PERM_ROOT:
|
||||||
if (setuid(0))
|
if (setuid(0))
|
||||||
fatal("setuid(0)");
|
fatal("setuid(0)");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PERM_USER:
|
case PERM_USER:
|
||||||
(void) setegid(user_gid);
|
(void) setegid(user_gid);
|
||||||
if (setreuid(0, user_uid))
|
if (setreuid(0, user_uid))
|
||||||
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)");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PERM_RUNAS:
|
case PERM_RUNAS:
|
||||||
/* headed for exec(), assume euid == 0 */
|
/* headed for exec(), assume euid == 0 */
|
||||||
runas_setup();
|
runas_setup();
|
||||||
@@ -234,13 +228,6 @@ set_perms_fallback(perm, sudo_mode)
|
|||||||
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 */
|
||||||
runas_setup();
|
runas_setup();
|
||||||
|
4
sudo.h
4
sudo.h
@@ -111,8 +111,8 @@ struct sudo_user {
|
|||||||
* Used with set_perms()
|
* Used with set_perms()
|
||||||
*/
|
*/
|
||||||
#define PERM_ROOT 0x00
|
#define PERM_ROOT 0x00
|
||||||
#define PERM_USER 0x01
|
#define PERM_FULL_ROOT 0x01
|
||||||
#define PERM_FULL_USER 0x02
|
#define PERM_USER 0x02
|
||||||
#define PERM_SUDOERS 0x03
|
#define PERM_SUDOERS 0x03
|
||||||
#define PERM_RUNAS 0x04
|
#define PERM_RUNAS 0x04
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user