Provided by: courier-authlib-userdb_0.71.4-1build3_amd64 bug

NAME

       makeuserdb - create /etc/courier/userdb

SYNOPSIS

       makeuserdb [-f filename]

       pw2userdb

       vchkpw2userdb [--vpopmailhome=dir] [--todir=dir]

DESCRIPTION

       makeuserdb creates /etc/courier/userdb.dat from the contents of /etc/courier/userdb.
       /etc/courier/userdb's contents are described later in this document.  Maildrop, Courier, and other
       applications use /etc/courier/userdb.dat as a substitute/complement for your system password file. The
       usual purpose for /etc/courier/userdb.dat is to specify "virtual" accounts - accounts that do not have an
       associated system login. Usually (but not necessarily) all virtual accounts share the same system userid.
       /etc/courier/userdb.dat may also replace your system password file. Because the system password file is a
       text file, when there's a large number of accounts it will be significantly faster to search
       @userdb.dat@, which is a binary database, instead of a flat text file that the system password file
       usually is.

       The makeuserdb command can be safely executed during normal system activity.

       The -f option creates filename.dat from filename, instead of the default /etc/courier/userdb.dat from
       /etc/courier/userdb.

   Format of /etc/courier/userdb
       /etc/courier/userdb is a plain text file that can be created using any text editor. Blank lines are
       ignored. Lines that start with the # character are comments, and are also ignored. Other lines define
       properties of a single "account", one line per account.  /etc/courier/userdb may be a directory instead
       of a plain file. In that case all files in /etc/courier/userdb are essentially concatenated, and are
       treated as a single file. Each line takes the following format:

           name<TAB>field=value|field=value...

       name is the account name.  name MUST contain only lowercase characters If Courier is configured to treat
       lowercase and uppercase account names as identical, name is followed by exactly one tab character, then a
       list of field/value pairs separated by vertical slashes.  field is the name of the field, value is the
       field value. Fields and values themself cannot contain slashes or control characters. Fields may be
       specified in any order. Here are all the currently defined fields. Note that not every field is used by
       every application that reads /etc/courier/userdb.dat.

       uid - value is a (possibly) unique numerical user ID for this account.

       gid - value is a (possibly) unique numerical group ID for this account.

       home - value is the account's home directory.

       shell - value is the account's default login shell.

       systempw - value is the account's password. See userdbpw(8)[1] for details on how to set up this field.

       pop3pw, esmtppw, imappw...  - value specifies a separate password used only for authenticating access
       using a specific service, such as POP3, IMAP, or anything else. If not defined, systempw is always used.
       This allows access to an account to be restricted only to certain services, such as POP3, even if other
       services are also enabled on the server.

       mail - value specifies the location of the account's Maildir mailbox. This is an optional field that is
       normally used when userdb is used to provide aliases for other mail accounts. For example, one particular
       multi-domain E-mail service configuration that's used by both Qmail and Courier servers is to deliver
       mail for a mailbox in a virtual domain, such as "user@example.com", to a local mailbox called
       "example-user". Instead of requiring the E-mail account holder to log in as "example-user" to download
       mail from this account, a userdb entry for "user@example.com" is set up with mail set to the location of
       example-user's Maildir mailbox, thus hiding the internal mail configuration from the E-mail account
       holder's view.

       quota - value specifies the maildir quota for the account's Maildir. This has nothing to do with actual
       filesystem quotas.  Courier has a software-based Maildir quota enforcement mechanism which requires
       additional setup and configuration. See maildirquota(7)[2] for additional information.

   /etc/courier/userdbshadow.dat
       All fields whose name ends with 'pw' will NOT copied to /etc/courier/userdb.dat. These fields will be
       copied to /etc/courier/userdbshadow.dat.  makeuserdb creates /etc/courier/userdbshadow.dat without any
       group and world permissions. Note that makeuserdb reports an error if /etc/courier/userdb has any group
       or world permissions.

   CONVERTING /etc/passwd and vpopmail to /etc/courier/userdb format
       pw2userdb reads the /etc/passwd and /etc/shadow files and converts all entries to the /etc/courier/userdb
       format, printing the result on standard output. The output of pw2userdb can be saved as
       /etc/courier/userdb (or as some file in this subdirectory). Linear searches of /etc/passwd can be very
       slow when you have tens of thousands of accounts. Programs like maildrop always look in
       /etc/courier/userdb first. By saving the system password file in /etc/courier/userdb it is possible to
       significantly reduce the amount of time it takes to look up this information.

       After saving the output of pw2userdb, you must still run makeuserdb to create /etc/courier/userdb.dat.

       vchkpw2userdb converts a vpopmail-style directory hierarchy to the /etc/courier/userdb format. This is an
       external virtual domain management package that's often used with Qmail servers.

       Generally, an account named 'vpopmail' is reserved for this purpose. In that account the file
       users/vpasswd has the same layout as /etc/passwd, and performs a similar function, except that all userid
       in users/vpasswd have the same userid. Additionally, the domains subdirectory stores virtual accounts for
       multiple domains. For example, domains/example.com/vpasswd has the passwd file for the domain
       example.com. Some systems also have a soft link, domains/default, that points to a domain that's
       considered a "default" domain.

       The vchkpw2userdb reads all this information, and tries to convert it into the /etc/courier/userdb
       format. The --vpopmailhost option specifies the top level directory, if it is not the home directory of
       the vpopmail account.

       The vchkpw2userdb script prints the results on standard output. If specified, the --todir option tries to
       convert all vpasswd files one at a time, saving each one individually in dir. For example:

           mkdir /etc/courier/userdb
           vchkpw2userdb --todir=/etc/courier/userdb/vpopmail
           makeuserdb

       It is still necessary to run makeuserdb, of course, to create the binary database file
       /etc/courier/userdb.dat

       NOTE: You are still required to create the /etc/courier/userdb entry which maps system userids back to
       accounts, "uid=<TAB>name", if that's applicable.  vchkpw2userdb will not do it for you.

       NOTE: makeuserdb may complain about duplicate entries, if your "default" entries in users/vpasswd or
       domains/default/vpasswd are the same as anything in any other /etc/courier/userdb file. It is also likely
       that you'll end up with duplicate, but distinct, entries for every account in the default domain. For
       example, if your default domain is example.com, you'll end up with duplicate entries - you'll have
       entries for both user and user@example.com.

       If you intend to maintain the master set of accounts using vchkpw/vpopmail, in order to avoid cleaning
       this up every time, you might want to consider doing the following: run vchkpw2userdb once, using the
       --todir option. Then, go into the resulting directory, and replace one of the redundant files with a soft
       link to /dev/null. This allows you to run vchkpw2userdb without having to go in and cleaning up again,
       afterwards.

FILES

           /etc/courier/userdb
           /etc/courier/userdb.dat
           /etc/courier/userdbshadow.dat
           /etc/courier/userdb.tmp - temporary file
           /etc/courier/userdbshadow.tmp - temporary file

BUGS

       makeuserdb is a Perl script, and uses Perl's portable locking. Perl's documentation notes that certain
       combinations of locking options may not work with some networks.

SEE ALSO

       userdb(8)[3], maildrop(8)[4], courier(8)[5], maildirquota(7)[2].

NOTES

        1. userdbpw(8)
           [set $man.base.url.for.relative.links]/userdbpw.html

        2. maildirquota(7)
           [set $man.base.url.for.relative.links]/maildirquota.html

        3. userdb(8)
           [set $man.base.url.for.relative.links]/userdb.html

        4. maildrop(8)
           [set $man.base.url.for.relative.links]/maildrop.html

        5. courier(8)
           [set $man.base.url.for.relative.links]/courier.html