]> granicus.if.org Git - apache/blob - support/suexec.h
4c6dc50daddc558243c30bee828db03385cdc15a
[apache] / support / suexec.h
1 /* ====================================================================
2  * The Apache Software License, Version 1.1
3  *
4  * Copyright (c) 2000-2004 The Apache Software Foundation.  All rights
5  * reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in
16  *    the documentation and/or other materials provided with the
17  *    distribution.
18  *
19  * 3. The end-user documentation included with the redistribution,
20  *    if any, must include the following acknowledgment:
21  *       "This product includes software developed by the
22  *        Apache Software Foundation (http://www.apache.org/)."
23  *    Alternately, this acknowledgment may appear in the software itself,
24  *    if and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Apache" and "Apache Software Foundation" must
27  *    not be used to endorse or promote products derived from this
28  *    software without prior written permission. For written
29  *    permission, please contact apache@apache.org.
30  *
31  * 5. Products derived from this software may not be called "Apache",
32  *    nor may "Apache" appear in their name, without prior written
33  *    permission of the Apache Software Foundation.
34  *
35  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46  * SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Apache Software Foundation.  For more
51  * information on the Apache Software Foundation, please see
52  * <http://www.apache.org/>.
53  */
54
55 /*
56  * suexec.h -- user-definable variables for the suexec wrapper code.
57  *             (See README.configure on how to customize these variables.)
58  */
59
60
61 #ifndef _SUEXEC_H
62 #define _SUEXEC_H
63
64 /*
65  * Include ap_config_layout so we can work out where the default htdocsdir
66  * and logsdir are.
67  */
68 #include "ap_config_layout.h"
69
70 /*
71  * HTTPD_USER -- Define as the username under which Apache normally
72  *               runs.  This is the only user allowed to execute
73  *               this program.
74  */
75 #ifndef AP_HTTPD_USER
76 #define AP_HTTPD_USER "www"
77 #endif
78
79 /*
80  * UID_MIN -- Define this as the lowest UID allowed to be a target user
81  *            for suEXEC.  For most systems, 500 or 100 is common.
82  */
83 #ifndef AP_UID_MIN
84 #define AP_UID_MIN 100
85 #endif
86
87 /*
88  * GID_MIN -- Define this as the lowest GID allowed to be a target group
89  *            for suEXEC.  For most systems, 100 is common.
90  */
91 #ifndef AP_GID_MIN
92 #define AP_GID_MIN 100
93 #endif
94
95 /*
96  * USERDIR_SUFFIX -- Define to be the subdirectory under users' 
97  *                   home directories where suEXEC access should
98  *                   be allowed.  All executables under this directory
99  *                   will be executable by suEXEC as the user so 
100  *                   they should be "safe" programs.  If you are 
101  *                   using a "simple" UserDir directive (ie. one 
102  *                   without a "*" in it) this should be set to 
103  *                   the same value.  suEXEC will not work properly
104  *                   in cases where the UserDir directive points to 
105  *                   a location that is not the same as the user's
106  *                   home directory as referenced in the passwd file.
107  *
108  *                   If you have VirtualHosts with a different
109  *                   UserDir for each, you will need to define them to
110  *                   all reside in one parent directory; then name that
111  *                   parent directory here.  IF THIS IS NOT DEFINED
112  *                   PROPERLY, ~USERDIR CGI REQUESTS WILL NOT WORK!
113  *                   See the suEXEC documentation for more detailed
114  *                   information.
115  */
116 #ifndef AP_USERDIR_SUFFIX
117 #define AP_USERDIR_SUFFIX "public_html"
118 #endif
119
120 /*
121  * LOG_EXEC -- Define this as a filename if you want all suEXEC
122  *             transactions and errors logged for auditing and
123  *             debugging purposes.
124  */
125 #ifndef AP_LOG_EXEC
126 #define AP_LOG_EXEC DEFAULT_EXP_LOGFILEDIR "/suexec_log" /* Need me? */
127 #endif
128
129 /*
130  * DOC_ROOT -- Define as the DocumentRoot set for Apache.  This
131  *             will be the only hierarchy (aside from UserDirs)
132  *             that can be used for suEXEC behavior.
133  */
134 #ifndef AP_DOC_ROOT
135 #define AP_DOC_ROOT DEFAULT_EXP_HTDOCSDIR
136 #endif
137
138 /*
139  * SAFE_PATH -- Define a safe PATH environment to pass to CGI executables.
140  *
141  */
142 #ifndef AP_SAFE_PATH
143 #define AP_SAFE_PATH "/usr/local/bin:/usr/bin:/bin"
144 #endif
145
146 #endif /* _SUEXEC_H */