POSTALIAS(1)                                                      POSTALIAS(1)

名称
       postalias - Postfix 别名数据库维护工具

概要
       postalias [-Nfinoprsuvw] [-c config_dir] [-d key] [-q key]
               [file_type:]file_name ...

描述
       postalias(1) 命令用于创建、查询或更新一个或多个 Postfix 别名数据库。
       其输入输出文件格式与 Sendmail 8 版本兼容,适合作为 NIS 别名映射使用。

       如果目标数据库文件不存在,将按照源文件的组权限和其他读取权限创建新文件。

       数据库更新过程中会延迟信号传递,并对整个数据库施加排他性咨询锁,
       以避免其他进程访问时出现意外情况。

       Postfix 别名输入文件格式详见 aliases(5) 文档说明。

       默认情况下,查找键会被转换为小写以实现不区分大小写的查询。
       从 Postfix 2.3 开始,这种大小写转换仅适用于键值为固定大小写字符串的数据库类型,
       如 btree: 、 dbm: 或 hash: 。
       早期版本中,即使对于支持混合大小写匹配的类型(如 regexp: 和 pcre: )
       也会进行大小写转换,这会导致 $number 替换时信息丢失。

选项:
       -c config_dir
              指定配置目录来读取 main.cf 文件,而非使用默认配置目录。

       -d key
              在指定数据库中搜索并删除匹配的键值。成功找到并删除时返回零状态码。

              当键值为 - 时,从标准输入读取键值。只要成功删除至少一个键值即返回零状态码。

       -f
              创建或查询数据库时保留键值原有大小写。

              在 Postfix 2.3 及更高版本中,此选项对正则表达式表无效,
              因为正则表达式的大小写敏感性由模式标志控制。

       -i
              增量模式。从标准输入读取条目,不覆盖现有数据库。
              默认情况下 postalias(1) 会从源文件创建全新数据库。

       -N
              在查找键和值中包含终止空字符。默认行为取决于操作系统设置。

       -n
              不包含查找键和值的终止空字符。默认行为取决于操作系统设置。

       -o
              处理非 root 用户拥有的文件时保持 root 权限。
              默认情况下会降权以源文件所有者身份运行。

       -p
              创建新文件时不继承源文件权限,而是使用默认权限(模式 0644)。

       -q key
              在指定数据库中搜索键值,并将首个匹配结果输出到标准输出。
              成功找到时返回零状态码。

              注意:此操作仅执行精确匹配查询,不会像 aliases(5) 手册所述那样进行子串迭代查询。

              当键值为 - 时,从标准输入读取键值,并为每个找到的键值输出 key: value 格式行。
              只要找到至少一个键值即返回零状态码。

       -r
              更新数据库时不提示确认覆盖现有条目,直接执行更新。

       -s
              输出数据库中所有条目,每行以 key: value 格式显示。
              条目按数据库内部顺序排列(可能与输入顺序不同)。
              此功能自 Postfix 2.2 起支持,但并非所有数据库类型都适用。

       -u
              禁用 UTF-8 支持。当配置 "smtputf8_enable = yes" 时默认启用,
              要求键值必须为有效的 UTF-8 字符串。

       -v
              启用详细日志输出用于调试。每增加一个 -v 选项都会提高输出详细程度。

       -w
              更新数据库时忽略对现有条目的修改,不提示也不执行更新。

参数:
       file_type
              数据库类型。使用 "postconf -m" 命令可查看支持的类型列表。

              postalias(1) 可查询所有支持的类型,但只能创建以下类型:

              btree
                     生成名为 file_name.db 的 B 树数据库文件。
                     需要系统支持 db 数据库。

              cdb
                     生成名为 file_name.cdb 的 CDB 数据库文件。
                     需要系统支持 cdb 数据库。

              dbm
                     生成 file_name.pagfile_name.dir 两个文件。
                     需要系统支持 dbm 数据库。

              fail
                     生成始终返回失败的特殊表,仅用于日志记录。
                     主要用于简化 Postfix 错误测试。

              hash
                     生成名为 file_name.db 的哈希数据库文件。
                     需要系统支持 db 数据库。

              lmdb
                     生成名为 file_name.lmdb 的 B 树数据库文件。
                     支持多进程并发读写,与其他基于文件的数据库不同。
                     需要系统支持 lmdb 数据库。

              sdbm
                     生成 file_name.pagfile_name.dir 两个文件。
                     需要系统支持 sdbm 数据库。

              未指定类型时,使用 default_database_type 配置参数指定的默认类型。
              该参数的默认值取决于运行环境。

       file_name
              创建数据库时使用的别名数据源文件名。

诊断
       问题会同时输出到标准错误流和 syslogd(8) 或 postlogd(8) 。
       无输出表示操作成功。重复条目会被跳过并产生警告。

       postalias(1) 执行成功(包括成功查询)时返回零状态码,
       失败时返回非零状态码。

环境变量
       MAIL_CONFIG
              Postfix 配置文件所在目录。

       MAIL_VERBOSE
              启用详细日志输出用于调试。

配置参数
       以下 main.cf 参数与本命令密切相关。

       此处仅作简要说明,详见 postconf(5) 文档。

       alias_database (参见 'postconf -d' 输出)
              由 "newaliases" 或 "sendmail -bi" 更新的本地投递别名数据库。

       config_directory (参见 'postconf -d' 输出)
              Postfix main.cfmaster.cf 配置文件的默认位置。

       berkeley_db_create_buffer_size (16777216)
              创建 Berkeley DB 哈希表或 B 树表时使用的每表 I/O 缓冲区大小。

       berkeley_db_read_buffer_size (131072)
              读取 Berkeley DB 哈希表或 B 树表时使用的每表 I/O 缓冲区大小。

       default_database_type (参见 'postconf -d' 输出)
              newaliases(1)postalias(1)postmap(1) 命令使用的默认数据库类型。

       import_environment (参见 'postconf -d' 输出)
              特权 Postfix 进程从非 Postfix 父进程继承的环境变量列表,
              或 name=value 形式的环境变量覆盖设置。

       smtputf8_enable (yes)
              启用对 RFC 6531RFC 6532RFC 6533 所述协议的 SMTPUTF8 支持。

       syslog_facility (mail)
              Postfix 日志使用的 syslog 设施。

       syslog_name (参见 'postconf -d' 输出)
              在 syslog 记录中添加到进程名前的前缀,
              例如将 "smtpd" 显示为 "prefix/smtpd"。

       Postfix 2.11 及以上版本支持:

       lmdb_map_size (16777216)
              OpenLDAP LMDB 数据库的初始大小限制(字节)。

标准
       RFC 822 (ARPA 互联网文本消息标准)

参见
       aliases(5), 别名数据库文件格式
       local(8), Postfix 本地投递代理
       postconf(1), 支持的数据库类型
       postconf(5), 配置参数说明
       postmap(1), 数据库创建/更新/查询工具
       newaliases(1), Sendmail 兼容接口
       postlogd(8), Postfix 日志服务
       syslogd(8), 系统日志服务

说明文件
       DATABASE_README, Postfix 数据库概览

许可
       使用本软件需随附 Secure Mailer 许可证。

作者
       Wietse Venema
       IBM T.J. Watson 研究院
       邮政信箱 704 号
       美国纽约州约克镇高地市,邮编 10598

       Wietse Venema
       Google 公司
       纽约第八大道 111 号
       美国纽约州,邮编 10011

                                                                  POSTALIAS(1)