demsd has asked for the wisdom of the Perl Monks concerning the following question:

Friend updated php on his vps and now cgi script does not work. getting a "scgiwrap: Caller must be the nobody user" error. Permissions okay. Any idea's?

Replies are listed 'Best First'.
Re: cgi error
by dsheroh (Monsignor) on Feb 09, 2009 at 12:39 UTC
    Apparently, the PHP upgrade installed scgiwrap, which appears to include a security-related requirement that cgi programs must be run as user "nobody", which is commonly used as an extra-unprivileged account that owns nothing and, therefore, can do as little damage as possible to the system.

    The web server is attempting to run your CGI as a user other than "nobody", so scgiwrap is blocking it.

    Depending on how the server is configured, this is most likely either because a) apache is running as a user other than "nobody" (on Debian-derived systems, for example, it runs as "www-data" by default) or b) Apache is configured to use the suexec module, causing the CGI to be run as the owning user (probably you, maybe your friend).

    Your two options for resolving this are to either find a way to turn off scgiwrap's user ID check (if suexec is in use) or tell it to check for the correct user instead of "nobody" (if Apache is running as "www-data" or other dedicated web-nobody account).

      I knew the permissions were correct so, that sounds more like it. Thanks.
Re: cgi error
by Anonymous Monk on Feb 09, 2009 at 03:25 UTC
    Permissions okay. Any idea's?
    Fix permissions, they're not ok.