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.cfmain.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(默认:Postfix3.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 配置变量控制)。

              特定命令的命令行参数语法在相应的守护进程手册页中说明。

              以下命令行选项对所有守护进程程序具有相同效果:

              -Dmain.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)