po::notify(g_AppParams);
#ifndef _WIN32
- if (g_AppParams.count("user")) {
- String user = g_AppParams["user"].as<String>();
+ if (g_AppParams.count("group")) {
+ String group = g_AppParams["group"].as<String>();
errno = 0;
- struct passwd *pw = getpwnam(user.CStr());
+ struct group *gr = getgrnam(group.CStr());
- if (!pw) {
+ if (!gr) {
BOOST_THROW_EXCEPTION(posix_error()
<< boost::errinfo_api_function("getpwnam")
<< boost::errinfo_errno(errno));
}
- if (setuid(pw->pw_uid) < 0) {
+ if (setgid(gr->gr_gid) < 0) {
BOOST_THROW_EXCEPTION(posix_error()
- << boost::errinfo_api_function("setuid")
+ << boost::errinfo_api_function("setgid")
<< boost::errinfo_errno(errno));
}
}
- if (g_AppParams.count("group")) {
- String group = g_AppParams["group"].as<String>();
+ if (g_AppParams.count("user")) {
+ String user = g_AppParams["user"].as<String>();
errno = 0;
- struct group *gr = getgrnam(group.CStr());
+ struct passwd *pw = getpwnam(user.CStr());
- if (!gr) {
+ if (!pw) {
BOOST_THROW_EXCEPTION(posix_error()
<< boost::errinfo_api_function("getpwnam")
<< boost::errinfo_errno(errno));
}
- if (setgid(gr->gr_gid) < 0) {
+ if (setuid(pw->pw_uid) < 0) {
BOOST_THROW_EXCEPTION(posix_error()
- << boost::errinfo_api_function("setgid")
+ << boost::errinfo_api_function("setuid")
<< boost::errinfo_errno(errno));
}
}