makeuserdb(8)



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




Free and Open Source Software


Free Software Video

Useful Programs

Free Online Courses

Open Opportunity

Open Business