25.2.2.4.5. The mod_auth_dbm and mod_auth_db Modules
Apache HTTP Server 1.3 supported two authentication modules,
mod_auth_db
and mod_auth_dbm
, which used Berkeley Databases and DBM databases respectively. These modules have been combined into a single module named mod_auth_dbm
in Apache HTTP Server 2.0, which can access several different database formats. To migrate from mod_auth_db
, configuration files should be adjusted by replacing AuthDBUserFile
and AuthDBGroupFile
with the mod_auth_dbm
equivalents, AuthDBMUserFile
and AuthDBMGroupFile
. Also, the directive AuthDBMType DB
must be added to indicate the type of database file in use.
The following example shows a sample
mod_auth_db
configuration for Apache HTTP Server 1.3:
<Location /private/> AuthType Basic AuthName "My Private Files" AuthDBUserFile /var/www/authdb require valid-user </Location>
To migrate this setting to version 2.0 of Apache HTTP Server, use the following structure:
<Location /private/> AuthType Basic AuthName "My Private Files"AuthDBMUserFile
/var/www/authdbAuthDBMType DB
require valid-user </Location>
Note that the
AuthDBMUserFile
directive can also be used in .htaccess
files.
The
dbmmanage
Perl script, used to manipulate username and password databases, has been replaced by htdbm
in Apache HTTP Server 2.0. The htdbm
program offers equivalent functionality and, like mod_auth_dbm
, can operate a variety of database formats; the -T
option can be used on the command line to specify the format to use.
Table 25.1, “Migrating from
dbmmanage
to htdbm
” shows how to migrate from a DBM-format database to htdbm
format using dbmmanage
.
Action | dbmmanage command (1.3) | Equivalent htdbm command (2.0) |
---|---|---|
Add user to database (using given password) | dbmmanage authdb add username password | htdbm -b -TDB authdb username password |
Add user to database (prompts for password) | dbmmanage authdb adduser username | htdbm -TDB authdb username |
Remove user from database | dbmmanage authdb delete username | htdbm -x -TDB authdb username |
List users in database | dbmmanage authdb view | htdbm -l -TDB authdb |
Verify a password | dbmmanage authdb check username | htdbm -v -TDB authdb username |
The
-m
and -s
options work with both dbmmanage
and htdbm
, enabling the use of the MD5 or SHA1 algorithms for hashing passwords, respectively.
When creating a new database with
htdbm
, the -c
option must be used.
For more on this topic, refer to the following documentation on the Apache Software Foundation's website: