]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_privileges.html.en
* Update transformation.
[apache] / docs / manual / mod / mod_privileges.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>mod_privileges - Apache HTTP Server</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
16 <p class="apache">Apache HTTP Server Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
19 <div id="path">
20 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Apache Module mod_privileges</h1>
23 <div class="toplang">
24 <p><span>Available Languages: </span><a href="../en/mod/mod_privileges.html" title="English">&nbsp;en&nbsp;</a></p>
25 </div>
26 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support for Solaris privileges and for running virtual hosts
27 under different user IDs.</td></tr>
28 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
29 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>privileges_module</td></tr>
30 <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3 and up, on Solaris 10 and
31 OpenSolaris platforms</td></tr></table>
32 <h3>Summary</h3>
33
34 <p>This module enables different Virtual Hosts to run with different
35 Unix&#8482; <var>User</var> and <var>Group</var> IDs, and with different
36 <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">Solaris Privileges</a>.  In particular, it offers a solution to the
37 problem of privilege separation between different Virtual Hosts, first
38 promised by the abandoned perchild MPM.  It also offers other security
39 enhancements.</p>
40
41 <p>Unlike perchild, <code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code>
42 is not itself an MPM.  It works <em>within</em> a processing model to
43 set privileges and User/Group <em>per request</em> in a running process.
44 It is therefore not compatible with a threaded MPM, and will refuse
45 to run under one.</p>
46
47 <p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> raises security issues similar to
48 those of <a href="../suexec.html">suexec</a>.  But unlike suexec,
49 it applies not only to CGI programs but to the entire request processing
50 cycle, including in-process applications and subprocesses.
51 It is ideally suited to running PHP applications under <strong>mod_php</strong>,
52 which is also incompatible with threaded MPMs.  It is also well-suited
53 to other in-process scripting applications such as <strong>mod_perl</strong>,
54 <strong>mod_python</strong>, and <strong>mod_ruby</strong>, and to
55 applications implemented in C as apache modules where privilege
56 separation is an issue.</p>
57
58 </div>
59 <div id="quickview"><h3 class="directives">Directives</h3>
60 <ul id="toc">
61 <li><img alt="" src="../images/down.gif" /> <a href="#dtraceprivileges">DTracePrivileges</a></li>
62 <li><img alt="" src="../images/down.gif" /> <a href="#vhostcgimode">VHostCGIMode</a></li>
63 <li><img alt="" src="../images/down.gif" /> <a href="#vhostcgiprivs">VHostCGIPrivs</a></li>
64 <li><img alt="" src="../images/down.gif" /> <a href="#vhostgroup">VHostGroup</a></li>
65 <li><img alt="" src="../images/down.gif" /> <a href="#vhostprivs">VHostPrivs</a></li>
66 <li><img alt="" src="../images/down.gif" /> <a href="#vhostsecure">VHostSecure</a></li>
67 <li><img alt="" src="../images/down.gif" /> <a href="#vhostuser">VHostUser</a></li>
68 </ul>
69 <h3>Topics</h3>
70 <ul id="topics">
71 <li><img alt="" src="../images/down.gif" /> <a href="#security">Security Considerations</a></li>
72 </ul></div>
73 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
74 <div class="section">
75 <h2><a name="security" id="security">Security Considerations</a></h2>
76 <p>There are three principal security concerns with mod_privileges:</p>
77 <ul><li>Running as a system user introduces the same security issues
78     as mod_suexec, and near-equivalents such as cgiwrap and suphp.</li>
79 <li>A privileges-aware malicious user extension (module or script)
80     could escalate its privileges to anything available to the
81     httpd process in any virtual host.</li>
82 <li>A privileges-aware malicious user extension (module or script)
83     could escalate privileges to set its user ID to another
84     system user (and/or group).</li>
85 </ul>
86
87 <p>The first is amply discussed in the suexec page and elsewhere, and
88 doesn't need repeating here.  The second and third boil down to one
89 principle: ensure no untrusted privileges-aware code can be loaded.
90 </p>
91
92 <p>There are several ways privileges-aware code could be loaded into Apache:</p>
93 <ul>
94 <li>within the base system (e.g. mod_privileges itself if statically linked).</li>
95 <li>Loaded at startup using a LoadModule or LoadFile directive.</li>
96 <li>Loaded at startup indirectly by an application module such as mod_php.</li>
97 <li>Loaded at runtime by an application module or script.</li>
98 </ul>
99
100 <p>What gets loaded at startup is under the control of the sysop, and
101 relatively easy to deal with.  A tool will be provided to audit your
102 installation.  That leaves code loaded in the course of processing a
103 request as the threat.  There is unfortunately no generic way apache
104 can control what a script running under an application module can load,
105 so you should use the security provided by your scripting module
106 and language.</p>
107
108 <h3>Security with mod_php</h3>
109
110 <p>There is no known PHP extension supporting Solaris privileges, so it
111 is unlikely that a script could escalate privileges unless it can
112 load external (non-PHP) privileges-aware code.  However, you should
113 nevertheless audit your mod_php installation.</p>
114
115 <p>To prevent scripts loading privileges-aware code, PHP's dl() function
116 should be disabled.  This is automatic in safe mode.</p>
117
118
119
120 <h3>Security with mod_perl</h3>
121
122 <p>Perl has an extension Sun::Solaris::Privileges that exposes the privileges
123 API to scripts.  You should ensure this extension is NOT installed if you
124 have untrusted users.</p>
125
126 <p>You will also need to ensure that your users cannot load shared objects
127 (including PerlXS) from their own user directories, or that if this is
128 enabled, the entire user-space must be carefully audited.</p>
129
130
131 <h3>Security with mod_python</h3>
132
133 <p>There is no known Python extension supporting Solaris privileges, so it
134 is unlikely that a script could escalate privileges unless it can
135 load external (non-Python) privileges-aware code.  However, you should
136 nevertheless audit your mod_ruby installation.</p>
137
138 <p>*** What are the issues of Python loading a shared object?</p>
139
140
141 <h3>Security with mod_ruby</h3>
142
143 <p>There is no known Ruby extension supporting Solaris privileges, so it
144 is unlikely that a script could escalate privileges unless it can
145 load external (non-Ruby) privileges-aware code.  However, you should
146 nevertheless audit your mod_ruby installation.</p>
147
148 <p>*** What are the issues of Ruby loading a shared object?</p>
149
150
151 <h3>Security with Lua/mod_wombat</h3>
152
153 <p>???</p>
154
155 <h3>Security with scripts</h3>
156 <p>The security issues of mod_privileges do not affect scripts such as
157 traditional CGI, which run in a separate process.  That includes
158 PHP, Perl, Python, Ruby, etc, run out-of-process.</p>
159
160 </div>
161 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
162 <div class="directive-section"><h2><a name="DTracePrivileges" id="DTracePrivileges">DTracePrivileges</a> <a name="dtraceprivileges" id="dtraceprivileges">Directive</a></h2>
163 <table class="directive">
164 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether the privileges required by dtrace are enabled.</td></tr>
165 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DTracePrivileges On|Off</code></td></tr>
166 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DTracePrivileges Off</code></td></tr>
167 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
168 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
169 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
170 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
171 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).</td></tr>
172 </table>
173     <p>This server-wide directive determines whether Apache will run with
174     the <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">privileges</a> required to run
175     <a href="http://www.sun.com/bigadmin/content/dtrace/">dtrace</a>.
176     Note that <var>DTracePrivileges On</var> will not in itself
177     activate DTrace, but <var>DTracePrivileges Off</var> will prevent
178     it working.</p>
179
180 </div>
181 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
182 <div class="directive-section"><h2><a name="VHostCGIMode" id="VHostCGIMode">VHostCGIMode</a> <a name="vhostcgimode" id="vhostcgimode">Directive</a></h2>
183 <table class="directive">
184 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether the virtualhost can run
185 subprocesses, and the privileges available to subprocesses.</td></tr>
186 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostCGIMode On|Off|Secure</code></td></tr>
187 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VHostCGIMode On</code></td></tr>
188 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
189 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
190 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
191 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
192 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).</td></tr>
193 </table>
194     <p>Determines whether the virtual host is allowed to run fork and exec,
195     the <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">privileges</a> required to run subprocesses.  If this is set to
196     <var>Off</var> the virtualhost is denied the privileges and will not
197     be able to run traditional CGI programs or scripts under the traditional
198     <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, nor similar external programs such as those
199     created by <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> or
200     <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> <var>prog</var>.
201     Note that it does not prevent CGI programs running under alternative
202     process and security models such as <a href="http://fastcgi.coremail.cn">mod_fcgid</a>, which is a recommended solution in Solaris.</p>
203     <p>If set to <var>On</var> or <var>Secure</var>, the virtual host
204     is permitted to run external programs and scripts as above.
205     Setting <code class="directive">VHostCGIMode</code> <var>Secure</var> has
206     the effect of denying privileges to the subprocesses, as described
207     for <code class="directive">VHostSecure</code>.</p>
208
209 </div>
210 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
211 <div class="directive-section"><h2><a name="VHostCGIPrivs" id="VHostCGIPrivs">VHostCGIPrivs</a> <a name="vhostcgiprivs" id="vhostcgiprivs">Directive</a></h2>
212 <table class="directive">
213 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Assign arbitrary privileges to subprocesses created
214 by a virtual host.</td></tr>
215 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostPrivs [+-]?<var>privilege-name</var> [[+-]?privilege-name] ...</code></td></tr>
216 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>None</code></td></tr>
217 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
218 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
219 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
220 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
221 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM)
222 and when <code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> is compiled with the
223 <var>BIG_SECURITY_HOLE</var> compile-time option.</td></tr>
224 </table>
225     <p><code class="directive">VHostCGIPrivs</code> can be used to assign arbitrary <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">privileges</a> to subprocesses created by a virtual host, as discussed
226     under <code class="directive">VHostCGIMode</code>.  Each <var>privilege-name</var>
227     is the name of a Solaris privilege, such as <var>file_setid</var>
228     or <var>sys_nfs</var>.</p>
229
230     <p>A <var>privilege-name</var> may optionally be prefixed by
231     + or -, which will respectively allow or deny a privilege.
232     If used with neither + nor -, all privileges otherwise assigned
233     to the virtualhost will be denied.  You can use this to override
234     any of the default sets and construct your own privilege set.</p>
235
236     <div class="warning"><h3>Security</h3>
237     <p>This directive can open huge security holes in apache subprocesses,
238     up to and including running them with root-level powers.  Do not
239     use it unless you fully understand what you are doing!</p></div>
240
241 </div>
242 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
243 <div class="directive-section"><h2><a name="VHostGroup" id="VHostGroup">VHostGroup</a> <a name="vhostgroup" id="vhostgroup">Directive</a></h2>
244 <table class="directive">
245 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the Group ID under which a virtual host runs.</td></tr>
246 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostGroup <var>unix-groupid</var></code></td></tr>
247 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Inherits the group id specified in
248 <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code></code></td></tr>
249 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
250 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
251 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
252 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
253 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).</td></tr>
254 </table>
255     <p>The <code class="directive">VHostGroup</code> directive sets the Unix group
256     under which the server will process requests to a virtualhost.
257     The group is set before the request is processed and reset afterwards
258     using <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">Solaris Privileges</a>.  Since the setting applies to the
259     <em>process</em>, this is not compatible with threaded MPMs.</p>
260     <p><var>Unix-group</var> is one of:</p>
261     <dl>
262       <dt>A group name</dt>
263       <dd>Refers to the given group by name.</dd>
264
265       <dt><code>#</code> followed by a group number.</dt>
266       <dd>Refers to a group by its number.</dd>
267     </dl>
268
269     <div class="warning"><h3>Security</h3>
270     <p>This directive cannot be used to run apache as root!
271     Nevertheless, it opens potential security issues similar to
272     those discussed in the <a href="../suexec.html">suexec</a>
273     documentation.</p></div>
274
275 <h3>See also</h3>
276 <ul>
277 <li><code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code></li>
278 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
279 </ul>
280 </div>
281 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
282 <div class="directive-section"><h2><a name="VHostPrivs" id="VHostPrivs">VHostPrivs</a> <a name="vhostprivs" id="vhostprivs">Directive</a></h2>
283 <table class="directive">
284 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Assign arbitrary privileges to a virtual host.</td></tr>
285 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostPrivs [+-]?<var>privilege-name</var> [[+-]?privilege-name] ...</code></td></tr>
286 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>None</code></td></tr>
287 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
288 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
289 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
290 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
291 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).
292 and when <code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> is compiled with the
293 <var>BIG_SECURITY_HOLE</var> compile-time option.</td></tr>
294 </table>
295     <p><code class="directive">VHostPrivs</code> can be used to assign arbitrary <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">privileges</a> to a virtual host.  Each <var>privilege-name</var>
296     is the name of a Solaris privilege, such as <var>file_setid</var>
297     or <var>sys_nfs</var>.</p>
298
299     <p>A <var>privilege-name</var> may optionally be prefixed by
300     + or -, which will respectively allow or deny a privilege.
301     If used with neither + nor -, all privileges otherwise assigned
302     to the virtualhost will be denied.  You can use this to override
303     any of the default sets and construct your own privilege set.</p>
304
305     <div class="warning"><h3>Security</h3>
306     <p>This directive can open huge security holes in apache, up to
307     and including running requests with root-level powers.  Do not
308     use it unless you fully understand what you are doing!</p></div>
309
310 </div>
311 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
312 <div class="directive-section"><h2><a name="VHostSecure" id="VHostSecure">VHostSecure</a> <a name="vhostsecure" id="vhostsecure">Directive</a></h2>
313 <table class="directive">
314 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether the server runs with enhanced security
315 for the virtualhost.</td></tr>
316 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostSecure On|Off</code></td></tr>
317 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VHostSecure On</code></td></tr>
318 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
319 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
320 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
321 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
322 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).</td></tr>
323 </table>
324     <p>Determines whether the virtual host processes requests with
325     security enhanced by removal of <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">Privileges</a> that are rarely needed in a webserver, but which are
326     available by default to a normal Unix user and may therefore
327     be required by modules and applications.  It is recommended that
328     you retain the default (On) unless it prevents an application running.
329     Since the setting applies to the <em>process</em>, this is not
330     compatible with threaded MPMs.</p>
331     <div class="note"><h3>Note</h3>
332     <p>If <code class="directive">VHostSecure</code> prevents an application
333     running, this may be a warning sign that the application should be
334     reviewed for security.</p></div>
335
336 </div>
337 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
338 <div class="directive-section"><h2><a name="VHostUser" id="VHostUser">VHostUser</a> <a name="vhostuser" id="vhostuser">Directive</a></h2>
339 <table class="directive">
340 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the User ID under which a virtual host runs.</td></tr>
341 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VHostUser <var>unix-userid</var></code></td></tr>
342 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Inherits the userid specified in
343 <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code></code></td></tr>
344 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
345 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
346 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_privileges</td></tr>
347 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available on Solaris 10 and OpenSolaris with
348 non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a></code> or custom MPM).</td></tr>
349 </table>
350     <p>The <code class="directive">VHostUser</code> directive sets the Unix userid
351     under which the server will process requests to a virtualhost.
352     The userid is set before the request is processed and reset afterwards
353     using <a href="http://www.sun.com/bigadmin/features/articles/least_privilege.jsp">Solaris Privileges</a>.  Since the setting applies to the
354     <em>process</em>, this is not compatible with threaded MPMs.</p>
355     <p><var>Unix-userid</var> is one of:</p>
356     <dl>
357       <dt>A username</dt>
358       <dd>Refers to the given user by name.</dd>
359
360       <dt><code>#</code> followed by a user number.</dt>
361       <dd>Refers to a user by its number.</dd>
362     </dl>
363
364     <div class="warning"><h3>Security</h3>
365     <p>This directive cannot be used to run apache as root!
366     Nevertheless, it opens potential security issues similar to
367     those discussed in the <a href="../suexec.html">suexec</a>
368     documentation.</p></div>
369
370 <h3>See also</h3>
371 <ul>
372 <li><code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code></li>
373 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
374 </ul>
375 </div>
376 </div>
377 <div class="bottomlang">
378 <p><span>Available Languages: </span><a href="../en/mod/mod_privileges.html" title="English">&nbsp;en&nbsp;</a></p>
379 </div><div id="footer">
380 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
381 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
382 </body></html>