# HG changeset patch # User Olaf Wintermann # Date 1664096438 -7200 # Node ID 80ee93a7d257729cdb6f9d8dacee4c49f5438069 # Parent 144332e23ffdcad1995c1a3acb3d76dbdbbfed13 add verbose logging for setuid/setgid and abort startup if setuid fails diff -r 144332e23ffd -r 80ee93a7d257 src/server/daemon/webserver.c --- a/src/server/daemon/webserver.c Sun Sep 25 10:51:47 2022 +0200 +++ b/src/server/daemon/webserver.c Sun Sep 25 11:00:38 2022 +0200 @@ -140,26 +140,30 @@ // change uid if(changeuid && ws_uid == 0) { // a webserver user is set and we are root - + log_ereport(LOG_VERBOSE, "setgid(%d)", vars->Vuserpw->pw_gid); if(setgid(vars->Vuserpw->pw_gid) != 0) { log_ereport( LOG_FAILURE, "setgid(%d) failed", vars->Vuserpw->pw_gid); + return -1; } else { // setgid was successful // we need to call initgroups to have all group permissions if(initgroups(vars->Vuserpw->pw_name, vars->Vuserpw->pw_gid)!=0) { log_ereport(LOG_FAILURE, "initgroups failed"); + return -1; } } // change the uid + log_ereport(LOG_VERBOSE, "setuid(%d)", vars->Vuserpw->pw_uid); if(setuid(vars->Vuserpw->pw_uid)) { log_ereport( LOG_FAILURE, "setuid(%d) failed", vars->Vuserpw->pw_uid); + return -1; } } else if(vars->Vuserpw) { log_ereport(