Changeset 2010
- Timestamp:
- 10/27/2007 11:06:17 PM (9 months ago)
- Files:
-
- trunk/src/server.c (modified) (2 diffs)
- trunk/src/spawn-fcgi.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/server.c
r1988 r2010 1325 1325 return -1; 1326 1326 } 1327 1328 #ifdef HAVE_PWD_H 1329 /** 1330 * initgroups() has to be called before chroot() 1331 */ 1332 if (srv->srvconf.groupname->used) { 1333 setgid(grp->gr_gid); 1334 setgroups(0, NULL); 1335 if (srv->srvconf.username->used) { 1336 initgroups(srv->srvconf.username->ptr, grp->gr_gid); 1337 } 1338 } 1339 #endif 1327 1340 #ifdef HAVE_CHROOT 1328 1341 if (srv->srvconf.changeroot->used) { … … 1341 1354 #ifdef HAVE_PWD_H 1342 1355 /* drop root privs */ 1343 if (srv->srvconf.groupname->used) {1344 setgid(grp->gr_gid);1345 setgroups(0, NULL);1346 }1347 if (srv->srvconf.username->used && srv->srvconf.groupname->used)1348 initgroups(srv->srvconf.username->ptr, grp->gr_gid);1349 1356 if (srv->srvconf.username->used) setuid(pwd->pw_uid); 1350 1357 #endif trunk/src/spawn-fcgi.c
r1945 r2010 430 430 return -1; 431 431 } 432 433 /* do the change before we do the chroot() */ 434 setgid(grp->gr_gid); 435 setgroups(0, NULL); 436 437 if (username) { 438 initgroups(username, grp->gr_gid); 439 } 440 432 441 } 433 442 … … 448 457 449 458 /* drop root privs */ 450 if (groupname) {451 setgid(grp->gr_gid);452 }453 459 if (username) { 454 if (groupname) {455 initgroups(username, grp->gr_gid);456 }457 460 setuid(pwd->pw_uid); 458 461 }

