Scroll to navigation

USERDB(8) Double Precision, Inc. USERDB(8)

NAME

userdb - manipulate /etc/courier/userdb

SYNOPSIS

userdb { addr} set {field=value...}
userdb { addr} unset {field...}
userdb { addr} del
userdb { path/addr} [set | unset | del] ...
userdb -f { file} {adr} [set | unset | del] ...
userdb -show { path}
userdb -show { path} {addr}
userdb -show -f { file}
userdb -show -f { file} {addr}

DESCRIPTION

 
userdb is a convenient script to individually manipulate entries in /etc/courier/userdb. See makeuserdb(8)[1] for a description of its contents. /etc/courier/userdb can always be edited using any text editor, but userdb is a convenient way to modify this file from another script.
 
/etc/courier/userdb can also be a subdirectory, instead of a file. Specify foo/bar/addr to manipulate addr in the file /etc/courier/userdb/foo/bar. You can also use the -f flag: -f /etc/courier/userdb/foo/bar is equivalent. Use whatever form makes the most sense to you.
 
/etc/courier/userdb must not have any group or world permissions. That´s because its contents may include system passwords (depending upon the application which uses this virtual user account database).
Each line in /etc/courier/userdb takes following form:
 
addr specifies a unique virtual address. It is followed by a single tab character, then a list of field=value pairs, separated by vertical slash characters. See makeuserdb(8)[1] for field definitions.
A text editor can be used to add blank lines or comments in /etc/courier/userdb. Any blank lines or comments are ignored by the userdb script.
The names of the actual fields, and their contents, are defined entirely by applications that use the /etc/courier/userdb database, the userdb command just adds or removes arbitrary fields.
For example:
 
userdb default/info set mail=/home/mail/info
This command accesses the address "info" in /etc/courier/userdb/default.
If the second argument to userdb is " set", the remaining arguments are taken as field=value pairs, which are added to the record for addr. If there is no record for addr, a new record will be appended to the file. If addr exists, any existing values of any specified fields are removed. If =value is missing, userdb stops and prompts for it. This is useful if you´re setting a password field, where you do not want to specify the password on the command line, which can be seen by the ps(1) command. If userdb is being executed by a script, the value can be provided on standard input.
Use " unset" to delete fields from an existing record. Use " del" to delete all fields in the existing record, plus the record itself.

DISPLAYING /etc/courier/userdb

If the first argument to userdb is -show, userdb displays the contents of /etc/courier/userdb. If /etc/courier/userdb is a subdirectory, path must refer to a specific file in /etc/courier/userdb. The -f option can be used instead of path in order to specify an arbitrary file.
If addr is not specified, userdb produces a list, on standard output, containing all addresses found in the file, on per line. If addr is specified, userdb produces a list, on standard output, of all the fields in /etc/courier/userdb for this addr.

REBUILDING /etc/courier/userdb.dat

The actual virtual account/address database is /etc/courier/userdb.dat. This is a binary database file. /etc/courier/userdb is the plain text version. After running userdb, execute the makeuserdb(8)[1] command to rebuild /etc/courier/userdb.dat for the changes to take effect.

BUGS

 
addr must be unique. If /etc/courier/userdb is a subdirectory, it´s possible to create the same addr in different files in the subdirectory. This is an error that is not currently detected by userdb, however the subsequent makeuserdb(8)[1] command will fail with an error message.

FILES

 
/etc/courier/userdb - plain text file, or directory of plain text files
 
.lock.filename - lock file for filename
 
.tmp.filename - temporary file used to create new contents of filename

SEE ALSO

 
makeuserdb(8)[1], userdbpw(8)[2]

NOTES

1.
makeuserdb(8)
makeuserdb.html
2.
userdbpw(8)
userdbpw.html
08/23/2008 Double Precision, Inc.