网络管理员指南 -21.简单的 smail配置文件

/ns/wz/net/data/20020808042426.htm

网络管理员指南 -21.简单的 smail配置文件


本文出自:http://www.linpus.com.tw 作者: Andrew Anderson


这个部分为一个在本地网络上的UUCP翻页显示样本配置文件。它们包含在一个样本文件中包括在
SMAIL-3.1.28 DE 源分区中.尽管我尽力解释这些文件如何工作,仍然建议你阅读非常准确的SMAIL(8)
手册页,它有详细的篇幅介绍.当你了解SMAIL配置之后的基本主张的时候,它就是值得阅读的.它很简单!
第一个文件显示文件路由器,它描述一系列路由器到SMAIL.当SMAIL需要递送一个信息到一个给定的地址
的时候,它按顺序传送地址到所有的路由器,直到有一个适合.适合在这里意味着路由器在它的数据中发现
目标主机,它是路径文件,/ETC/HOST,或者路由接口使用的路由机制.
注册在SMAIL配置文件中经常由一个独特的名字开头来指定路由器,传送,或者导航.它们跟随着一组指定
它的行为的附件.这个列表包含一组全球属性,例如驱使用,和只有特定启动可以识别的私人属性.属性由
逗号分割开,而一组全球和私人属性使用分号分割.
要使这些区分明确,假定你想要保留两个单独的PATHALIAS文件,一个包含你的域的路由信息,第二个包含
全球路由信息,当然,通常来自UUCP地图.使用SMAIL,你可以现在在路由文件中指定两个路由器,都使用
PATHALIAS驱动.这个驱动在PATHALIAS数据中查找主机名字.它得到一个特殊的名字:
第二个在上面给出的在每个路由器的全球属性需要在路由器符合地址的时候被使用.在我们的案例中,
信息将使用UUX传输来递送.传输在传送文件中指定,它在下面进行解释.
你可以通过传送一个信息来详细调节,如果你指定一个方式文件而不是传送属性将被递送.我们将不会
在这里处它们.
下面的路由文件为一个本地网络指定路由器,它询问决议集合.但是在一个INTERNET主机上你可能想要
使用SMAIL的建立-在BIND驱动.
在一个混合UUCP和TCP/IP的环境中,你可能遇到问题,你有主机在你的/ETC/HOST文件,你只是偶然连接
SLIP或者是PPP.要防止INET_HOSTS驱动遇到这些主机,你需要把他们放在PATH/FORCE文件中.这是另外
一个PATHALIAS风格的数据.并在SMAIL 询问路由器之前被询问.
本地地址的邮件处理的配置在路径文件中.它的组成正象路由文件,有一个路径的列表指定每一个路径.
控制器不处理一个信息,它们只是显示所有可能的重寄,例如通过匿名,邮件转发或者类似.
当递送邮件到一个本地地址,例如JANET,SMAIL传送USR名字到所有顺序的路径.如果一个路径符合,它或
者指定一个信息需要被递送的传送信息(例如,到用户的邮箱文件),或者产生一个新的地址(例如,在评估
一个化名之后).
因为涉及到安全问题,路径通常做许多检查他们使用的文件是否危害安全的动作.地址包含在一个不确定
的方式(例如从一个全球可写的化名文件)被标记为不可靠.一些传送驱动将关闭这样的地址,例如那些递
送一个信息到一个文件的传送.
除了这之外,SMAIL还合作一个用户使用一个各自的地址.用户可以进行任何读写操作.例如JENET的邮箱,
递送到的地址当然是JANET的地址.其他地址,例如那些从化名文件中得到的,有其他用户,例如无人用户.
这些特征的详细内容,请参照SMAIL(8)主页.
在成功路由或者引导一个信息之后,SMAIL处理信息到相关的路由器或者控制器指定的传送.同样、,一个
传送有一组全球和私人选项指定.
由每一个路径指定的最为重要的选项处理传送,例如管道驱动,它涉及到在CMD属性中指定的命令.除了这
个,有许多全球属性一个传送可能用到,它在信息标题上显示各种传送,可能是信息主体.RETURN-PATH属性,
例如,使传输插入一个RETURN-PATH区域到信息标题.UNIX-FROM-HACK属性使他在所有单词之前出现,有一
个 标志.
# A sample /usr/lib/smail/transports file

# local - deliver mail to local users
local: driver=appendfile, # append message to a file
return_path, # include a Return-Path: field
from, # supply a From_ envelope line
unix_from_hack, # insert > before From in body
local; # use local forms for delivery

file=/var/spool/mail/${lc:user}, # location of mailbox files
group=mail, # group to own file for System V
mode=0660, # group mail can access
suffix="\n", # append an extra newline

# pipe - deliver mail to shell commands
pipe: driver=pipe, # pipe message to another program
return_path, # include a Return-Path: field
from, # supply a From_ envelope line
unix_from_hack, # insert > before From in body
local; # use local forms for delivery

cmd="/bin/sh -c $user", # send address to the Bourne Shell
parent_env, # environment info from parent addr
pipe_as_user, # use user-id associated with address
ignore_status, # ignore a non-zero exit status
ignore_write_errors, # ignore write errors, i.e., broken pipe
umask=0022, # umask for child process
-log_output, # do not log stdout/stderr

# file - deliver mail to files
file: driver=appendfile,
return_path, # include a Return-Path: field
from, # supply a From_ envelope line
unix_from_hack, # insert > before From in body
local; # use local forms for delivery

file=$user, # file is taken from address
append_as_user, # use user-id associated with address
expand_user, # expand ~ and $ within address
suffix="\n", # append an extra newline
mode=0600, # set permissions to 600

# uux - deliver to the rmail program on a remote UUCP site
uux: driver=pipe,
uucp, # use UUCP-style addressing forms
from, # supply a From_ envelope line
max_addrs=5, # at most 5 addresses per invocation
max_chars=200; # at most 200 chars of addresses

cmd="/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$)",
pipe_as_sender, # have uucp logs contain caller
log_output, # save error output for bounce messages
# defer_child_errors, # retry if uux returns an error

# demand - deliver to a remote rmail program, polling immediately
demand: driver=pipe,
uucp, # use UUCP-style addressing forms
from, # supply a From_ envelope line
max_addrs=5, # at most 5 addresses per invocation
max_chars=200; # at most 200 chars of addresses

cmd="/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$)",
pipe_as_sender, # have uucp logs contain caller
log_output, # save error output for bounce messages
# defer_child_errors, # retry if uux returns an error

# hbsmtp - half-baked BSMTP. The output files must
# be processed regularly and sent out via UUCP.
hbsmtp: driver=appendfile,
inet, # use RFC 822-addressing
hbsmtp, # batched SMTP w/o HELO and QUIT
-max_addrs, -max_chars; # no limit on number of addresses

file="/var/spool/smail/hbsmtp/$host",
user=root, # file is owned by root
mode=0600, # only read-/writable by root.

# smtp - deliver using SMTP over TCP/IP
smtp: driver=tcpsmtp,
inet,
-max_addrs, -max_chars; # no limit on number of addresses

short_timeout=5m, # timeout for short operations
long_timeout=2h, # timeout for longer SMTP operations
service=smtp, # connect to this service port
# For internet use: uncomment the below 4 lines
# use_bind, # resolve MX and multiple A records
# defnames, # use standard domain searching
# defer_no_connect, # try again if the nameserver is down
# -local_mx_okay, # fail an MX to the local host