diff options
Diffstat (limited to 'asterisk.c')
-rw-r--r-- | asterisk.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/asterisk.c b/asterisk.c index a382b78e4..2bfbf452a 100644 --- a/asterisk.c +++ b/asterisk.c @@ -2187,6 +2187,16 @@ int main(int argc, char *argv[]) ast_log(LOG_WARNING, "No such user '%s'!\n", runuser); exit(1); } + if (!rungroup) { + if (setgid(pw->pw_gid)) { + ast_log(LOG_WARNING, "Unable to setgid to %d!\n", pw->pw_gid); + exit(1); + } + if (initgroups(pw->pw_name, pw->pw_gid)) { + ast_log(LOG_WARNING, "Unable to init groups for '%s'\n", runuser); + exit(1); + } + } if (setuid(pw->pw_uid)) { ast_log(LOG_WARNING, "Unable to setuid to %d (%s)\n", pw->pw_uid, runuser); exit(1); |