    POSTFIX-NON-BDB(1)                                          POSTFIX-NON-BDB(1)

    NAME
           postfix-non-bdb - Postfix non-Berkeley-DB migration

    SYNOPSIS
           postfix non-bdb subcommand

    DESCRIPTION
           The  "postfix  non-bdb subcommand" feature edits main.cf and master.cf,
           to manage the migration of an existing Postfix configuration that  uses
           Berkeley  DB  type "hash:" or "btree:" tables (which are no longer sup-
           ported on some OS distributions), to supported types such as "cdb:"  or
           "lmdb:".

           The following subcommands are available:

           status Reports the non-Berkeley-DB migration status, without making any
                  changes.

           disable
                  Edits main.cf and master.cf, to turn off the enable-redirect and
                  enable-reindex features.

                  This  will break integration with other software such as mailman
                  versions from before May 2025 when they  want  to  use  "postmap
                  hash:/path/to/file", for example, to update a mailman-maintained
                  table.

           enable-redirect (aliasing)
                  Edits main.cf and master.cf, to  enable  redirection  (aliasing)
                  from Berkeley DB types "hash" and "btree" to the non-Berkeley-DB
                  types     specified     with     $default_database_type      and
                  $default_cache_db_type.  Custom  redirection  may  be configured
                  with non_bdb_custom_mapping.

                  This configuration will not automatically create non-Berkeley-DB
                  indexed  database  files.  Instead, Postfix programs will log an
                  error as they fail to open an indexed database  file,  and  will
                  leave  it  to  the  system  administrator  to  run postmap(1) or
                  postalias(1) to create that file.

                  This will fix integration with other software  such  as  mailman
                  versions  from  before  May  2025 when they want to use "postmap
                  hash:/path/to/file", for example, to update a mailman-maintained
                  table.

                  This  subcommand  will  not  make any changes when default_data-
                  base_type or default_cache_db_type specify  a  hash:  or  btree:
                  type.

           enable-reindex
                  Edits  main.cf  and master.cf, to implement enable-redirect, and
                  to automatically create a non-Berkeley-DB indexed database  file
                  when  a  daemon program wants to access a file that does not yet
                  exist. This uses the nbdb_reindexd(8) daemon to  run  postmap(1)
                  or postalias(1) as described in "SECURITY" below.

                  This  subcommand  immediately  generates non-Berkeley-DB indexed
                  files for unprivileged command-line programs  that  cannot  send
                  requests  to  the  nbdb_reindexd(8) daemon server. This involves
                  "hash:" and "btree:" tables that are used  by  postqueue(1)  and
                  sendmail(1)  as  specified  in authorized_flush_users and autho-
                  rized_mailq_users, and by sendmail(1) and postdrop(1) as  speci-
                  fied in authorized_submit_users and local_login_sender_maps.

                  This  subcommand  will  not  make any changes when default_data-
                  base_type or default_cache_db_type specify  a  hash:  or  btree:
                  type.

                  NOTE: enable-reindex should be used only temporarily to generate
                  most of the non-Berkeley-DB indexed files  that  Postfix  needs.
                  Leaving  this enabled may expose the system to privilege-escala-
                  tion  attacks.  There  are  no  security  concerns   for   using
                  enable-redirect.

    SECURITY
           The  nbdb_reindexd(8)  daemon automatically generates a non-Berkeley-DB
           indexed file only if the database pathname matches the  directory  pre-
           fixes  specified  with non_bdb_migration_allow_root_prefixes (for files
           that must be owned by root), or with  non_bdb_migration_allow_user_pre-
           fixes  (for  files  that  must be owned by a non-root user). Additional
           restrictions on file and directory ownership and permissions are  docu-
           mented in nbdb_reindexd(8).

    CONFIGURATION PARAMETERS
           The "postfix non-bdb subcommand" feature updates the following configu-
           ration parameter:

           non_bdb_migration_level (disable)
                  The non-Berkeley-DB migration service level.

           Other relevant parameters:

           non_bdb_custom_mapping (empty)
                  When non-Berkeley-DB migration is enabled, an  optional  mapping
                  from a hash: or btree: type to a non-Berkeley-DB type.

           non_bdb_migration_allow_root_prefixes  (see 'postconf -d non_bdb_migra-
           tion_allow_root_prefixes' output)
                  A  list  of  trusted pathname prefixes that must be matched when
                  the non-Berkeley-DB migration service  (nbdb_reindexd(8))  needs
                  to  run  postmap(1)  or postalias(1) commands with "root" privi-
                  lege.

           non_bdb_migration_allow_user_prefixes (see 'postconf -d  non_bdb_migra-
           tion_allow_user_prefixes' output)
                  A list of trusted pathname prefixes that must  be  matched  when
                  the  non-Berkeley-DB  migration service (nbdb_reindexd(8)) needs
                  to run postmap(1) or postalias(1) commands with non-root  privi-
                  lege.

    SEE ALSO
           nbdb_reindexd(8) reindexing service

    README FILES
           NON_BERKELEYDB_README, migration guide

    LICENSE
           The Secure Mailer license must be distributed with this software.

    HISTORY
           The "postfix non-bdb" command was introduced with Postfix version 3.11.

    AUTHOR(S)
           Wietse Venema
           porcupine.org

                                                                POSTFIX-NON-BDB(1)