summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_process.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2017-08-26 13:37:44 +0300
committerIgor Sysoev <igor@sysoev.ru>2017-08-26 13:37:44 +0300
commit9aaa7d8c20e58ed380225cbbbd05248539d2f500 (patch)
treefdce2cc852667f0c93e14909093376adf3c1a473 /src/nxt_process.c
parente64494ba2cba9322f9594f26bcc69cb3a2441105 (diff)
downloadunit-9aaa7d8c20e58ed380225cbbbd05248539d2f500.tar.gz
unit-9aaa7d8c20e58ed380225cbbbd05248539d2f500.tar.bz2
Added configure option --user=USER and --group=GROUP.
Diffstat (limited to 'src/nxt_process.c')
-rw-r--r--src/nxt_process.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/nxt_process.c b/src/nxt_process.c
index e6a6fa0c..81344b2d 100644
--- a/src/nxt_process.c
+++ b/src/nxt_process.c
@@ -364,23 +364,43 @@ nxt_user_cred_get(nxt_task_t *task, nxt_user_cred_t *uc, const char *group)
struct group *grp;
struct passwd *pwd;
+ nxt_errno = 0;
+
pwd = getpwnam(uc->user);
if (nxt_slow_path(pwd == NULL)) {
- nxt_log(task, NXT_LOG_CRIT, "getpwnam(%s) failed %E",
- uc->user, nxt_errno);
+
+ if (nxt_errno == 0) {
+ nxt_log(task, NXT_LOG_CRIT,
+ "getpwnam(\"%s\") failed, user \"%s\" not found",
+ uc->user, uc->user);
+ } else {
+ nxt_log(task, NXT_LOG_CRIT, "getpwnam(\"%s\") failed %E",
+ uc->user, nxt_errno);
+ }
+
return NXT_ERROR;
}
uc->uid = pwd->pw_uid;
uc->base_gid = pwd->pw_gid;
- if (group != NULL) {
+ if (group != NULL && group[0] != '\0') {
+ nxt_errno = 0;
+
grp = getgrnam(group);
if (nxt_slow_path(grp == NULL)) {
- nxt_log(task, NXT_LOG_CRIT, "getgrnam(%s) failed %E",
- group, nxt_errno);
+
+ if (nxt_errno == 0) {
+ nxt_log(task, NXT_LOG_CRIT,
+ "getgrnam(\"%s\") failed, group \"%s\" not found",
+ group, group);
+ } else {
+ nxt_log(task, NXT_LOG_CRIT, "getgrnam(\"%s\") failed %E",
+ group, nxt_errno);
+ }
+
return NXT_ERROR;
}