MASTER(5) MASTER(5)
名称
master - Postfix 主进程配置文件格式
描述
Postfix 邮件系统由少量(主要是)用户调用的客户端命令和大量后台运行的服务组成。
Postfix 服务由守护进程实现。这些进程在后台运行,由 master(8) 进程按需启动。master.cf 配置文件定义了客户端程序如何连接服务,以及请求服务时运行的守护程序。大多数守护进程都是短命的,在服务完 max_use 个客户端后,或在 max_idle 或更长时间单位内不活动后自动终止。
本文档指定的所有守护进程必须使用 Postfix 内部协议。要执行非 Postfix 软件,请使用 local(8)、pipe(8) 或 spawn(8) 服务,或通过 inetd(8) 或等效方式执行软件。
修改 master.cf 后必须执行"postfix reload"命令重新加载配置。
语法
master.cf 文件的基本格式如下:
o 空行和仅包含空格的行会被忽略,以"#"开头的行同样会被忽略。
o 逻辑行以非空格文本开头。以空格开头的行是逻辑行的延续。
o 每个逻辑行定义一个 Postfix 服务。每个服务由其名称和类型标识(如下所述)。当多行指定相同的服务名称和类型时,只有最后一行会被记住。除此之外,master.cf 服务定义的顺序无关紧要。
每个逻辑行由八个以空格分隔的字段组成。下面按照它们在 master.cf 文件中出现的顺序进行说明。
适用时,使用"-"表示采用内置默认值。对于布尔字段,可指定"y"或"n"来覆盖默认值。
服务名称
服务名称的语法取决于服务类型(如下所述)。
服务类型
指定以下服务类型之一:
inet 服务监听 TCP/IP 套接字,可通过网络访问。
服务名称格式为主机:端口,表示接受新连接的主机和端口。主机部分(及冒号)可以省略。主机或端口可以用符号形式(参见 hosts(5) 或 services(5))或数字形式(IP 地址或端口号)指定。主机信息可以用"[]"括起来,这种形式仅对 IPv6 地址是必需的。
示例:名为 127.0.0.1:smtp 或 ::1:smtp 的服务仅通过环回接口接收邮件;名为 10025 的服务在所有配置了 inet_interfaces 参数的接口上接受 TCP 端口 10025 的连接。
注意:Postfix 2.2 及更高版本中,应在 main.cf 中指定"inet_interfaces = loopback-only",而不是在 master.cf 或 main.cf 中硬编码环回 IP 地址信息。
unix 服务监听 UNIX 域流套接字,仅限本地客户端访问。
服务名称是相对于 Postfix 队列目录的路径名(路径名由 main.cf 中的 queue_directory 配置参数控制)。
在 Solaris 8 及更早版本中,unix 类型通过流套接字实现。
unix-dgram
服务监听 UNIX 域数据报套接字,仅限本地客户端访问。
服务名称是相对于 Postfix 队列目录的路径名(路径名由 main.cf 中的 queue_directory 配置参数控制)。
fifo (已废弃)
服务监听 FIFO(命名管道),仅限本地客户端访问。
服务名称是相对于 Postfix 队列目录的路径名(路径名由 main.cf 中的 queue_directory 配置参数控制)。
pass 服务监听 UNIX 域流套接字,仅限本地客户端访问。每个连接请求接收一个打开的连接(文件描述符传递)。
服务名称是相对于 Postfix 队列目录的路径名(路径名由 main.cf 中的 queue_directory 配置参数控制)。
在 Solaris 8 及更早版本中,pass 类型通过流套接字实现。
此功能自 Postfix 2.5 版本起可用。
私有(默认:y)
服务是 Postfix 内部使用(路径名以 private/ 开头)还是通过 Postfix 命令行工具公开(路径名以 public/ 开头)。Internet(类型为 inet)服务不能设为私有。
非特权(默认:y)
服务是以 root 权限运行还是以 Postfix 系统所有者身份运行(所有者名称由 main.cf 中的 mail_owner 配置变量控制)。
local(8)、pipe(8)、spawn(8) 和 virtual(8) 守护进程需要特权。
Chroot(默认:Postfix ≥3.0: n, Postfix < 3.0: y)
服务是否在邮件队列目录的 chroot 环境中运行(路径名由 main.cf 中的 queue_directory 配置变量控制)。
不要对 local(8)、pipe(8)、spawn(8) 和 virtual(8) 守护进程使用 chroot。proxymap(8) 服务器虽然可以在 chroot 环境中运行,但这样做会大大削弱该服务的用途。
Postfix 源代码的 examples/chroot-setup 子目录中的文件展示了如何在各种系统上设置 Postfix chroot 环境。另请参阅 BASIC_CONFIGURATION_README 了解与在 chroot 环境中运行守护进程相关的问题。
唤醒时间(默认:0)
在指定秒数后自动唤醒命名服务。唤醒通过连接到服务并发送唤醒请求实现。唤醒时间字段末尾的"?"表示在首次使用服务前不发送唤醒事件。指定 0 表示不自动唤醒。
pickup(8)、qmgr(8) 和 flush(8) 守护进程需要唤醒计时器。
进程限制(默认:$default_process_limit)
可同时执行此服务的最大进程数。指定 0 表示无进程数限制。
注意:某些 Postfix 服务必须配置为单进程服务(例如 qmgr(8)),而有些服务必须配置为无进程限制(例如 cleanup(8))。这些限制不得更改。
命令名称 + 参数
要执行的命令。对于 shell 的特殊字符(如">"或"|")在此没有特殊含义,引号也不能用于保护包含空格的参数。要保护空格,请使用"{"和"}"(如下所述)。
命令名称是相对于 Postfix 守护进程目录的路径名(路径名由 daemon_directory 配置变量控制)。
特定命令的命令行参数语法在相应的守护进程手册页中说明。
以下命令行选项对所有守护进程程序具有相同效果:
-D 在 main.cf 配置文件中 debugger_command 变量指定的命令控制下运行守护进程。有关提示和技巧,请参阅 DEBUG_README。
-o { name = value } (长格式,Postfix ≥ 3.0)
覆盖 main.cf 中的命名配置参数。参数值可以像在 main.cf 中一样引用其他参数(如 $name 等)。语法参见 postconf(5)。
"长格式"支持参数值中的空格。外层"{"之后、"="周围和外层"}"之前的空格会被忽略。示例:
/etc/postfix/master.cf:
submission inet .... smtpd
-o { smtpd_xxx_yyy = 包含空格的文本... }
注意:过度使用参数覆盖会使 Postfix 配置难以理解和维护。在某些情况下,配置多个 Postfix 实例可能比通过 master.cf 配置多个角色更简单。
-o name=value (短格式)
覆盖 main.cf 中的命名配置参数。参数值可以像在 main.cf 中一样引用其他参数(如 $name 等)。语法参见 postconf(5)。
"短格式"不支持"="周围或参数值中的空格。要指定包含空格的参数值,请使用上述长格式,或如果参数支持,用逗号代替空格,或在 main.cf 中指定值。示例:
/etc/postfix/master.cf:
submission inet .... smtpd
-o smtpd_xxx_yyy=$submission_xxx_yyy
/etc/postfix/main.cf
submission_xxx_yyy = 包含空格的文本...
注意:过度使用参数覆盖会使 Postfix 配置难以理解和维护。在某些情况下,配置多个 Postfix 实例可能比通过 master.cf 配置多个角色更简单。
-v 提高详细日志记录级别。指定多个 -v 选项可使 Postfix 守护进程记录更详细的信息。
以 { 开头的命令行参数
包含空格的命令行参数
必须为空的命令行参数
在此类参数周围使用"{"和"}"(Postfix 3.0 及更高版本)。外层"{"和"}"将被移除,同时移除剩余文本中的所有前导或尾随空格。
参见
master(8),进程管理器
postconf(5),配置参数
README 文件
BASIC_CONFIGURATION_README,基本配置
DEBUG_README,Postfix 调试
许可
本软件必须随附 Secure Mailer 许可证。
作者
初始版本作者
Magnus Baeck
隆德理工学院
瑞典
Wietse Venema
IBM T.J. Watson 研究院
邮政信箱 704
美国纽约州约克镇高地 10598
Wietse Venema
Google 公司
第八大道 111 号
美国纽约州纽约市 10011
MASTER(5)