diff --git a/feuille.c b/feuille.c index 67787ad..1bfc28e 100644 --- a/feuille.c +++ b/feuille.c @@ -234,17 +234,20 @@ int main(int argc, char *argv[]) chdir(path); /* user checks */ - if (strlen(settings.user) == 0) - settings.user = "nobody"; + int uid, gid; + if (getuid() == 0) { + if (strlen(settings.user) == 0) + settings.user = "nobody"; - verbose(2, "getting uid and gid of user `%s'...", settings.user); + verbose(2, "getting uid and gid of user `%s'...", settings.user); - struct passwd *user; - if ((user = getpwnam(settings.user)) == NULL) - die(1, "User `%s' doesn't exist\n", settings.user); + struct passwd *user; + if ((user = getpwnam(settings.user)) == NULL) + die(1, "User `%s' doesn't exist\n", settings.user); - int uid = user->pw_uid; - int gid = user->pw_gid; + uid = user->pw_uid; + gid = user->pw_gid; + } /* server socket creation (before dropping root permissions) */