NAME
dbmmanage
—
create and update user authentication
files in DBM format
SYNOPSIS
dbmmanage |
filename [command] [username [encpassword]] |
DESCRIPTION
dbmmanage
is used to create and update the
DBM format files used to store usernames and passwords for basic
authentication of HTTP users. Resources available from the
httpd(8) Apache web server can be restricted to just the users listed
in the files created by dbmmanage
. This program can
only be used when the usernames are stored in a DBM file. To use a flat-file
database see
htpasswd(1).
This manual page only lists the command line arguments. For details of the directives necessary to configure user authentication in httpd(8), see the Apache manual, which can be found in /usr/share/doc/html/httpd/.
The options are as follows:
- command
- This selects the operation to perform:
add
- Add an entry for username to filename using the encrypted password encpassword.
adduser
- Ask for a password and then add an entry for username to filename.
check
- Ask for a password and then check if username is in filename and if its password matches the specified one.
delete
- Delete the username entry from filename.
import
- Read username:password entries (one per line) from stdin and add them to filename. The password already has to be encrypted.
update
- Same as the
adduser
command, except that it makes sure username already exists in filename. view
- Just display the complete contents of the DBM file.
- encpassword
- The password to be encrypted.
- filename
- The filename of the DBM format file. Usually without the extension .db, .pag, or .dir.
- username
- The user for which the update operation is performed.
SEE ALSO
BUGS
One should be aware that there are a number of different DBM file
formats in existence, and with all likelihood, libraries for more than one
format may exist on your system. The three primary examples are NDBM, the
GNU project's GDBM, and Berkeley DB 2. Unfortunately, all these libraries
use different file formats, and you must make sure that the file format used
by filename is the same format that
dbmmanage
expects to see.
dbmmanage
currently has no way of determining what
type of DBM file it is looking at. If used against the wrong format,
dbmmanage
will simply return nothing, or may create
a different DBM file with a different name, or at worst, it may corrupt the
DBM file if you were attempting to write to it.
dbmmanage
has a list of DBM format
preferences, defined by the “@AnyDBM::ISA” array near the
beginning of the program. Since we prefer the Berkeley DB 2 file format, the
order in which dbmmanage
will look for system
libraries is Berkeley DB 2, then NDBM, and then GDBM. The first library
found will be the library dbmmanage
will attempt to
use for all DBM file transactions. This ordering is slightly different than
the standard “@AnyDBM::ISA” ordering in
perl(1), as well as the ordering used by the simple
dbmopen
() call in perl, so if you use any other
utilities to manage your DBM files, they must also follow this preference
ordering. Similar care must be taken if using programs in other languages,
like C, to access these files.
httpd(8)'s mod_auth_db.c module corresponds to the Berkeley DB 2 library, while mod_auth_dbm.c corresponds to the NDBM library. Also, one can usually use the file(1) program supplied with most UNIX systems to see what format a DBM file is in.