Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1145614
  • 博文数量: 153
  • 博客积分: 10576
  • 博客等级: 上将
  • 技术积分: 2137
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 21:01
文章分类

全部博文(153)

文章存档

2009年(43)

2008年(110)

分类: LINUX

2009-08-12 21:44:33

master.cf 配置文件详解

以下为例,按顺序分别说明各栏的意义以及它们的默认值
   1           2      3       4       5      6       7      8
cyrus      unix    -       n       n       -        -    pipe
  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${ extension }


1、服务名称(server name)
    服务器组件的名称。实际的命名规则,随该服务的传送类型(第二栏)而定。

2、传送方式 (transport type)
    传送服务所用的通信方法。有效的传送方式包括与inet、unix与fifo 。inet方法表示服务可通过“网络套接字”(network socket)来访问,这类服务的对象可以是同系统上的其他进程,或是网络上其他主机的客户端进程。网络套接字服务的名称(第一栏),是inet用服务方的“IP地址”(主机名称也可以)与“通信端口 ”(数值或/etc/service 定义的端口的符号名称)的组合来表示,例如: 192.168.1.2:25、localhost:smtp 。如果服务方恰好位于本地主机上,则 “ IP地址 ”与冒号都可以省略。

    unix代表“Unix domain socket”,而fifo代表“命名管道”(named pipe)。两者都是同机器不同进程之间的通信机制,而且同样使用特殊文件为通信中介。unix与fifo服务的名称与Unix标准文件名的命名规则相同,但是不包含目录路径的部分。Postfix使用服务名称来创建通信中介用的特殊文件。Unix domain socket与命名管道两者都是Unix的标准“进程间通信机制”(interprocess communications,通常简称为IPC) 。更详尽的信息,请参阅有关Unix程序设计的书籍。


各种服务的可能名称范例

服务名称
传送方式
说明
smtp
inet
Smtp daemon的服务名称。此为/etc/service定义的SMTP通信端口代表的名称。
127.0.0.1:10025
inet
位于loopback接口的10025通信端口的服务器组件。

465
inet
位于本地主机(所有接口)的 465通信端口的服务器组件。
maildrop
unix
一个必须透过Postfix pipe daemon 才能访问的服务器组件。
pickup
fifo
一个必须透过FIFO机制才能访问的Postfix组件。



3、私有的(private)
    某些服务组件仅供Postfix系统自己使用,不开放给Postfix之外的其他软件使用。如果本栏标示为y ,表示私有访问(默认值);n代表开放公共访问。inet类型的组件必须标示为n ,否则外界就无法访问该服务,毕竟网络套接字本身的用意,就是要开放给其他进程访问。

4、非特权的(unpriv)
    是否使用非特权账户。默认值为y,表示服务组件运行时,只需使用mail_owner参数指定的非特权账户(默认值为postfix),即以完成任务所需的最低限度权限来提供服务。大部分postfix组件都可以使用非特权账户。对于需要root特权的服务组件,此栏必须设定为n 。

5、改变根目录(chroot)
    是否要改变组件的工作根目录,借此提升额外的安全性。工作根目录的位置由main.cf
的queue_directory参数决定。此栏的默认值为y(表示要改变工作根目录),大部分的Postfix组件也都可以在chroot环境下运作。不过,标准的安装方式是让所有组件都在正常环境下运行。将服务组件放在chroot环境下,添加了许多额外的复杂事情,你应该先通盘了解chroot所带来的保障,然后再决定这样的额外安全性是否值得你多费一番设定与维护的工夫。关于chroot的问题,请参阅本章关于“chroot”的讨论。

6、唤醒间隔(wakeup)
    某些组件必须每隔一段时间被唤醒一次,定期执行它们的任务。Pickup daemon就是这样的一个例子。其默认休眠间隔是60秒,master daemon每隔一分钟就唤醒pickup一次,要求它检查maildrop队列是否收到新邮件。qmgr和flush daemon也是需要被定期唤醒的服务组件。在时间值之后尾随一个问号(?),表示只有在需要该组件时才予以唤醒,0表示不必唤醒。此栏的默认值为0,因为目前只有三个组件需要被定期唤醒。Postfix包预先为这三个组件设定的唤醒间隔时间,应该足以应付大部分情况,其他服务组件都不需要master的定期唤醒。

7、进程数上限(maxproc)
    可以同时运行的进程个数的上限。如果没指定,则以main.cf的default_process_limit参数为准(其默认值为100)。如果设定为0,表示没有任何限制。如果服务器系统的资源有限,或是想让系统在某方面的表现特别好,你可以调整maxproc的值。

8、命令(command)
    最后一栏是运行服务的实际命令。命令中的“程序文件名”部分不必包含路径信息,因为master daemon假设所有程序文件都放在daemon_directory参数所指定的目录下(默认目录为/usr/libexec/postfix/)。Postfix的所有程序皆提供“-V”选项,可用来提高日志信息的详细程度,当我们需要解决问题时,经常利用这种方法来获得更多、更有用的调试信息。此外,你可以使用 -D选项,让Postfix 程序产生调试信息给调试程序。如果你需要知道更多关于调试的技术,请参考Postfix 包随附的DEBUG_READEM文件。

    每一个Postfix daemon都有自己的命令行选项。关于各个服务组件的选项,请参阅它们的在线说明书。请注意,只有Postfix提供的服务器程序才可以放在命令栏,如果你想要运行自己的命令,请使用Postfix提供的pipe daemon 。关于pipe的用法。

时间单位
    Postfix有一些与时间相关的参数,为了方便描述其值,Postfix提供了一组简写代号来表示时间单位:s(秒)、m(分)、h(时)、d(天)、w(周)。如果没明确注明时间单位,各时间参数以自己的默认时间单位来解读你给的值。虽然从在线说明书可查到所有时间参数的默认单位,但是谨慎的管理员不应该贸然留下模糊的解释空间,而应该明确标示给定时间值的单位。

某些服务器组件会参考main.cf提供的参数值,但同时也提供了“-o”命令行选项,让你可以在master.cf中强制设定你要的参数值。举例来说,若要创建一个特殊的smtp服务,你可将下面内容加入master.cf配置文件:
smtp-quick   unix    -    -    n    -    -    smtp
  -o smtp_connect_timeout=5s

    参数名称、等号与设定值可以紧接在一起,不必留空格。在加入本例这样的设定之后,你的系统就多了一个特殊的smtp-quick 服务,当它寄信时,如果对方服务器五秒内没有响应,就会自动断线。但是,遵照main.cf 设定值的那个smtp 服务,则使用不同的smtp_connect_timeout参数值。
阅读(1977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~