| <?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_dbm.xml.meta"> | |
| <name>mod_authz_dbm</name> | |
| <description>Group authorization using DBM files</description> | |
| <status>Extension</status> | |
| <sourcefile>mod_authz_dbm.c</sourcefile> | |
| <identifier>authz_dbm_module</identifier> | |
| <summary> | |
| <p>This module provides authorization capabilities so that | |
| authenticated users can be allowed or denied access to portions | |
| of the web site by group membership. Similar functionality is | |
| provided by <module>mod_authz_groupfile</module>.</p> | |
| </summary> | |
| <seealso><directive module="mod_authz_core">Require</directive></seealso> | |
| <section id="requiredirectives"><title>The Require Directives</title> | |
| <p>Apache's <directive module="mod_authz_core">Require</directive> | |
| directives are used during the authorization phase to ensure that | |
| a user is allowed to access a resource. mod_authz_dbm extends the | |
| authorization types with <code>dbm-group</code>.</p> | |
| <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported | |
| within the DBM require directives.</p> | |
| <section id="reqgroup"><title>Require dbm-group</title> | |
| <p>This directive specifies group membership that is required for the | |
| user to gain access.</p> | |
| <highlight language="config"> | |
| Require dbm-group admin | |
| </highlight> | |
| </section> | |
| <section id="reqfilegroup"><title>Require dbm-file-group</title> | |
| <p>When this directive is specified, the user must be a member of the group | |
| assigned to the file being accessed.</p> | |
| <highlight language="config"> | |
| Require dbm-file-group | |
| </highlight> | |
| </section> | |
| </section> | |
| <section id="examples"> | |
| <title>Example usage</title> | |
| <p><em>Note that using mod_authz_dbm requires you to require <code>dbm-group</code> | |
| instead of <code>group</code>:</em> | |
| </p> | |
| <highlight language="config"> | |
| <Directory "/foo/bar"> | |
| AuthType Basic | |
| AuthName "Secure Area" | |
| AuthBasicProvider dbm | |
| AuthDBMUserFile "site/data/users" | |
| AuthDBMGroupFile "site/data/users" | |
| Require dbm-group admin | |
| </Directory> | |
| </highlight> | |
| </section> | |
| <directivesynopsis> | |
| <name>AuthDBMGroupFile</name> | |
| <description>Sets the name of the database file containing the list | |
| of user groups for authorization</description> | |
| <syntax>AuthDBMGroupFile <var>file-path</var></syntax> | |
| <contextlist><context>directory</context><context>.htaccess</context> | |
| </contextlist> | |
| <override>AuthConfig</override> | |
| <usage> | |
| <p>The <directive>AuthDBMGroupFile</directive> directive sets the | |
| name of a DBM file containing the list of user groups for user | |
| authorization. <var>File-path</var> is the absolute path to the | |
| group file.</p> | |
| <p>The group file is keyed on the username. The value for a | |
| user is a comma-separated list of the groups to which the users | |
| belongs. There must be no whitespace within the value, and it | |
| must never contain any colons.</p> | |
| <note type="warning"><title>Security</title> | |
| <p>Make sure that the <directive>AuthDBMGroupFile</directive> is | |
| stored outside the document tree of the web-server. Do | |
| <strong>not</strong> put it in the directory that it protects. | |
| Otherwise, clients will be able to download the | |
| <directive>AuthDBMGroupFile</directive> unless otherwise | |
| protected.</p> | |
| </note> | |
| <p>Combining Group and Password DBM files: In some cases it is | |
| easier to manage a single database which contains both the | |
| password and group details for each user. This simplifies any | |
| support programs that need to be written: they now only have to | |
| deal with writing to and locking a single DBM file. This can be | |
| accomplished by first setting the group and password files to | |
| point to the same DBM:</p> | |
| <highlight language="config"> | |
| AuthDBMGroupFile "/www/userbase" | |
| AuthDBMUserFile "/www/userbase" | |
| </highlight> | |
| <p>The key for the single DBM is the username. The value consists | |
| of</p> | |
| <example> | |
| Encrypted Password : List of Groups [ : (ignored) ] | |
| </example> | |
| <p>The password section contains the encrypted | |
| password as before. This is followed by a colon and the comma | |
| separated list of groups. Other data may optionally be left in the | |
| DBM file after another colon; it is ignored by the authorization | |
| module.</p> | |
| </usage> | |
| </directivesynopsis> | |
| <directivesynopsis> | |
| <name>AuthzDBMType</name> | |
| <description>Sets the type of database file that is used to | |
| store list of user groups</description> | |
| <syntax>AuthzDBMType default|SDBM|GDBM|NDBM|DB</syntax> | |
| <default>AuthzDBMType default</default> | |
| <contextlist><context>directory</context><context>.htaccess</context> | |
| </contextlist> | |
| <override>AuthConfig</override> | |
| <usage> | |
| <p>Sets the type of database file that is used to store the list | |
| of user groups. | |
| The default database type is determined at compile time. The | |
| availability of other types of database files also depends on | |
| <a href="../install.html#dbm">compile-time settings</a>.</p> | |
| <p>It is crucial that whatever program you use to create your group | |
| files is configured to use the same type of database.</p> | |
| </usage> | |
| </directivesynopsis> | |
| </modulesynopsis> |