Now that we have a debugging/lint
tool for CGI programs, how do we set this up so that it executes
as the same UID as that of the Web server? If the Web server runs
with your own UID, then you do not have to do anything. But, if
it runs as some other UID, say "nobody" or "www," then you have
to ask the system administrator to run a script called
wrapper,
which sets the UID/GID bits. Let's quickly look at this script.
The wrapper is based on a program in the book Programming
Perl by Larry
Wall
and Randal Schwartz (two of the most knowledgable Perl gurus around).
Here is the format for the wrapper command:
% wrapper -f /usr/local/bin/CGI_Lint -u nobody -g none
The -f switch specifies the filename
to use, while the -u and the -g
switches set the UID and GID, respectively. You could also use numerical
identification numbers:
% wrapper -f /usr/local/bin/CGI_Lint -u 628120 -g 120
This will create a C executable with the specified UID and
GID bits set, that will, in turn, run the CGI script.