From 9d49a381ad92d5a1b6aebc05d9b34516825aeab7 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Thu, 2 Apr 2009 21:23:59 +0000
Subject: [PATCH] svn merge -r17124:17129
 https://eris.llnl.gov/svn/slurm/branches/slurm-1.3

---
 src/slurmctld/trigger_mgr.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/slurmctld/trigger_mgr.c b/src/slurmctld/trigger_mgr.c
index fe05f24bb51..c4c08d4e118 100644
--- a/src/slurmctld/trigger_mgr.c
+++ b/src/slurmctld/trigger_mgr.c
@@ -973,6 +973,8 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in)
 		trig_in->group_id = child;
 	} else if (child == 0) {
 		int i;
+		bool run_as_self = (uid == getuid());
+
 		for (i=0; i<128; i++)
 			close(i);
 #ifdef SETPGRP_TWO_ARGS
@@ -981,15 +983,15 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in)
 		setpgrp();
 #endif
 		setsid();
-		if (initgroups(user_name, gid) == -1) {
+		if ((initgroups(user_name, gid) == -1) && !run_as_self) {
 			error("trigger: initgroups: %m");
 			exit(1);
 		}
-		if (setgid(gid) == -1) {
+		if ((setgid(gid) == -1) && !run_as_self){
 			error("trigger: setgid: %m");
 			exit(1);
 		}
-		if (setuid(uid) == -1) {
+		if ((setuid(uid) == -1) && !run_as_self) {
 			error("trigger: setuid: %m");
 			exit(1);
 		}
-- 
GitLab