Skip to content
Snippets Groups Projects
Commit 9d49a381 authored by Moe Jette's avatar Moe Jette
Browse files
parent e2f0df5b
No related branches found
No related tags found
No related merge requests found
...@@ -973,6 +973,8 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in) ...@@ -973,6 +973,8 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in)
trig_in->group_id = child; trig_in->group_id = child;
} else if (child == 0) { } else if (child == 0) {
int i; int i;
bool run_as_self = (uid == getuid());
for (i=0; i<128; i++) for (i=0; i<128; i++)
close(i); close(i);
#ifdef SETPGRP_TWO_ARGS #ifdef SETPGRP_TWO_ARGS
...@@ -981,15 +983,15 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in) ...@@ -981,15 +983,15 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in)
setpgrp(); setpgrp();
#endif #endif
setsid(); setsid();
if (initgroups(user_name, gid) == -1) { if ((initgroups(user_name, gid) == -1) && !run_as_self) {
error("trigger: initgroups: %m"); error("trigger: initgroups: %m");
exit(1); exit(1);
} }
if (setgid(gid) == -1) { if ((setgid(gid) == -1) && !run_as_self){
error("trigger: setgid: %m"); error("trigger: setgid: %m");
exit(1); exit(1);
} }
if (setuid(uid) == -1) { if ((setuid(uid) == -1) && !run_as_self) {
error("trigger: setuid: %m"); error("trigger: setuid: %m");
exit(1); exit(1);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment