mirror of
https://github.com/apache/httpd.git
synced 2025-05-30 01:07:09 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420993 13f79535-47bb-0310-9956-ffa450edef68
134 lines
5.8 KiB
XML
134 lines
5.8 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_authz_owner.xml.meta">
|
|
|
|
<name>mod_authz_owner</name>
|
|
<description>Authorization based on file ownership</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_authz_owner.c</sourcefile>
|
|
<identifier>authz_owner_module</identifier>
|
|
<compatibility>Available in Apache 2.1 and later</compatibility>
|
|
|
|
<summary>
|
|
<p>This module authorizes access to files by comparing the userid used
|
|
for HTTP authentication (the web userid) with the file-system owner or
|
|
group of the requested file. The supplied username and password
|
|
must be already properly verified by an authentication module,
|
|
such as <module>mod_auth_basic</module> or
|
|
<module>mod_auth_digest</module>. <module>mod_authz_owner</module>
|
|
recognizes two arguments for the <directive module="core"
|
|
>Require</directive> directive, <code>file-owner</code> and
|
|
<code>file-group</code>, as follows:</p>
|
|
|
|
<dl>
|
|
<dt><code>file-owner</code></dt>
|
|
<dd>The supplied web-username must match the system's name for the
|
|
owner of the file being requested. That is, if the operating system
|
|
says the requested file is owned by <code>jones</code>, then the
|
|
username used to access it through the web must be <code>jones</code>
|
|
as well.</dd>
|
|
|
|
<dt><code>file-group</code></dt>
|
|
<dd>The name of the system group that owns the file must be present
|
|
in a group database, which is provided, for example, by <module
|
|
>mod_authz_groupfile</module> or <module>mod_authz_dbm</module>,
|
|
and the web-username must be a member of that group. For example, if
|
|
the operating system says the requested file is owned by (system)
|
|
group <code>accounts</code>, the group <code>accounts</code> must
|
|
appear in the group database and the web-username used in the request
|
|
must be a member of that group.</dd>
|
|
</dl>
|
|
|
|
<note><title>Note</title>
|
|
<p>If <module>mod_authz_owner</module> is used in order to authorize
|
|
a resource that is not actually present in the filesystem
|
|
(<em>i.e.</em> a virtual resource), it will deny the access.</p>
|
|
|
|
<p>Particularly it will never authorize <a
|
|
href="../content-negotiation.html#multiviews">content negotiated
|
|
"MultiViews"</a> resources.</p>
|
|
</note>
|
|
</summary>
|
|
<seealso><directive module="core">Require</directive></seealso>
|
|
|
|
<section id="examples"><title>Configuration Examples</title>
|
|
|
|
<section id="examples.file-owner"><title>Require file-owner</title>
|
|
<p>Consider a multi-user system running the Apache Web server, with
|
|
each user having his or her own files in <code
|
|
>~/public_html/private</code>. Assuming that there is a single
|
|
<directive module="mod_authn_dbm">AuthDBMUserFile</directive> database
|
|
that lists all of their web-usernames, and that these usernames match
|
|
the system's usernames that actually own the files on the server, then
|
|
the following stanza would allow only the user himself access to his
|
|
own files. User <code>jones</code> would not be allowed to access
|
|
files in <code>/home/smith/public_html/private</code> unless they
|
|
were owned by <code>jones</code> instead of <code>smith</code>.</p>
|
|
|
|
<example>
|
|
<Directory /home/*/public_html/private><br />
|
|
<indent>
|
|
AuthType Basic<br />
|
|
AuthName MyPrivateFiles<br />
|
|
AuthBasicProvider dbm<br />
|
|
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
Require file-owner<br />
|
|
</indent>
|
|
</Directory>
|
|
</example>
|
|
</section>
|
|
|
|
<section id="examples.file-group"><title>Require file-group</title>
|
|
<p>Consider a system similar to the one described above, but with
|
|
some users that share their project files in
|
|
<code>~/public_html/project-foo</code>. The files are owned by the
|
|
system group <code>foo</code> and there is a single <directive
|
|
module="mod_authz_dbm">AuthDBMGroupFile</directive> database that
|
|
contains all of the web-usernames and their group membership,
|
|
<em>i.e.</em> they must be at least member of a group named
|
|
<code>foo</code>. So if <code>jones</code> and <code>smith</code>
|
|
are both member of the group <code>foo</code>, then both will be
|
|
authorized to access the <code>project-foo</code> directories of
|
|
each other.</p>
|
|
|
|
<example>
|
|
<Directory /home/*/public_html/project-foo><br />
|
|
<indent>
|
|
AuthType Basic<br />
|
|
AuthName "Project Foo Files"<br />
|
|
AuthBasicProvider dbm<br />
|
|
<br />
|
|
# combined user/group database<br />
|
|
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
AuthDBMGroupFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
<br />
|
|
Satisfy All<br />
|
|
Require file-group<br />
|
|
</indent>
|
|
</Directory>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
</modulesynopsis>
|