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.pag 和 file_name.dir 两个文件。
需要系统支持 dbm 数据库。
fail
生成始终返回失败的特殊表,仅用于日志记录。
主要用于简化 Postfix 错误测试。
hash
生成名为 file_name.db 的哈希数据库文件。
需要系统支持 db 数据库。
lmdb
生成名为 file_name.lmdb 的 B 树数据库文件。
支持多进程并发读写,与其他基于文件的数据库不同。
需要系统支持 lmdb 数据库。
sdbm
生成 file_name.pag 和 file_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.cf 和 master.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 6531 、 RFC 6532 和 RFC 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)