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)