-rw-r--r-- | src/process.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/process.cc b/src/process.cc index 96c874f..6d3b2a2 100644 --- a/src/process.cc +++ b/src/process.cc | |||
@@ -95,6 +95,7 @@ void process::launch(const string& id,configuration& config) { | |||
95 | // child | 95 | // child |
96 | try { | 96 | try { |
97 | setsid(); | 97 | setsid(); |
98 | if(!group.empty()) { | ||
98 | if(user.empty()) { | 99 | if(user.empty()) { |
99 | if((getgid()!=gid) && setgid(gid)) | 100 | if((getgid()!=gid) && setgid(gid)) |
100 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setgid()"); | 101 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setgid()"); |
@@ -102,6 +103,7 @@ void process::launch(const string& id,configuration& config) { | |||
102 | if(initgroups(user.c_str(),gid)) | 103 | if(initgroups(user.c_str(),gid)) |
103 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to initgroups()"); | 104 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to initgroups()"); |
104 | } | 105 | } |
106 | } | ||
105 | if(!chroot.empty()) { | 107 | if(!chroot.empty()) { |
106 | if(::chroot(chroot.c_str())) | 108 | if(::chroot(chroot.c_str())) |
107 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()"); | 109 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()"); |