Index: src/resmom/start_exec.c =================================================================== --- src/resmom/start_exec.c (revision 4320) +++ src/resmom/start_exec.c (working copy) @@ -194,6 +194,7 @@ extern char *path_spool; extern char *path_aux; extern gid_t pbsgroup; +extern uid_t pbsuser; extern time_t time_now; extern unsigned int pbs_rm_port; extern u_long localaddr; @@ -1061,7 +1062,7 @@ } } /* END if (retval == 0) */ - seteuid(0); + seteuid(pbsuser); setegid(pbsgroup); @@ -5989,7 +5990,7 @@ rcstat = stat(path_alt, &myspooldir); - seteuid(0); + seteuid(pbsuser); if ((rcstat == 0) && (S_ISDIR(myspooldir.st_mode))) strncpy(path, path_alt, sizeof(path)); @@ -6334,7 +6335,7 @@ umask(old_umask); } - seteuid(0); + seteuid(pbsuser); setegid(pbsgroup); Index: src/resmom/job_func.c =================================================================== --- src/resmom/job_func.c (revision 4320) +++ src/resmom/job_func.c (working copy) @@ -161,6 +161,7 @@ /* Global Data items */ extern gid_t pbsgroup; +extern uid_t pbsuser; extern char *msg_abt_err; extern char *path_jobs; extern char *path_spool; @@ -653,7 +654,7 @@ rc = remtree(namebuf); - seteuid(0); + seteuid(pbsuser); setegid(pbsgroup); if ((rc != 0) && (LOGLEVEL >= 5)) Index: src/resmom/mom_main.c =================================================================== --- src/resmom/mom_main.c (revision 4320) +++ src/resmom/mom_main.c (working copy) @@ -213,6 +213,7 @@ extern char *msg_info_mom; /* Mom information message */ extern int pbs_errno; gid_t pbsgroup; +uid_t pbsuser; unsigned int pbs_mom_port = 0; unsigned int pbs_rm_port = 0; tlist_head mom_polljobs; /* jobs that must have resource limits polled */ @@ -6343,7 +6344,8 @@ mom_server_all_init(); - pbsgroup = getgid(); + pbsgroup= getgid(); + pbsuser = getuid(); loopcnt = time(NULL); MOMExePath = MOMFindMyExe(program_name);