From: Scott McNab Date: 2007-06-05T21:30:30+09:00 Subject: Re: Process::GID.change_privilege not changing groups proper Brian Candler wrote: > Try using Process.initgroups Thanks Brian that fixed it! > If you look at the source code to su, you'll probably find it calls > initgroups() somewhere. Actually you were spot on. The source in su.c (in the coreutils package) does exactly that: /* Become the user and group(s) specified by PW. */ static void change_identity (const struct passwd *pw) { #ifdef HAVE_INITGROUPS errno = 0; if (initgroups (pw->pw_name, pw->pw_gid) == -1) error (EXIT_FAIL, errno, _("cannot set groups")); endgrent (); #endif if (setgid (pw->pw_gid)) error (EXIT_FAIL, errno, _("cannot set group id")); if (setuid (pw->pw_uid)) error (EXIT_FAIL, errno, _("cannot set user id")); } Now, all we need is to get this fix incorporated into the Mongrel gem source tree... Regards Scott -- Posted via http://www.ruby-forum.com/.