On Mon, May 11, 2009 at 11:56:42AM -0400, Jeff Trawick wrote:
> Currently, starting httpd as non-root with mod_fcgid loaded fails unless
> User/Group are set to the active User/Group.  Normally, httpd modules don't
> try to set ownership of objects to the specified User/Group unless starting
> as root.  Thus, httpd.conf can contain reasonable User/Group settings for
> production use but still be suitable for use by Joe User.
> The affected code in fcgid_pm_unix.c is from the original revision (
> http://svn.apache.org/viewvc/httpd/mod_fcgid/trunk/mod_fcgid/arch/unix/fcgid_pm_unix.c?revision=753487&view=markup
> ).
> 
> Logic was added a couple of years ago (
> http://svn.apache.org/viewvc?view=rev&revision=753553) to bypass the
> directory creation/chown if the directory already existed and had the
> correct ownership, to allow use with some SELinux policy.
> 
> Comments/concerns?

I bumped into problems with this when I tried the Fedora package of 
mod_fcgid recently, but got scared off when I started reading the code.

1. global symbol names like get_socketpath() etc

2. defaults:

#define DEFAULT_SOCKET_PREFIX "logs/fcgidsock"
#define DEFAULT_SHM_PATH "logs/fcgid_shm"

should be DEFAULT_REL_RUNTIMEDIR-relative, then these would appear in 
the correct place by default (e.g. /var/run in a Fedora build)

3. the whole apr_dir_make_recursive() thing seemed a bit dubious (at 
least in that it's _recursive) - I would have expected a prerequisite of 
a correctly configured directory and failure otherwise.

but I confess I haven't had time/energy to look into this module in 
detail.  The only requirement on the directory is that root can create 
sockets in the directory, and the less-privileged user can open those 
sockets, right?

Regards, Joe

Reply via email to