风舞残阳 2008-4-1 16:59
ftpaccess(5) :ftpd 的配置文件
名称
ftpaccess-ftpd的配置档
描述
这个ftpaccess档案是用来配置下述功能的运作
存取功能(AccessCapabilities)
autogroup%26lt;群组名称%26gt;%26lt;类别%26gt;[%26lt;类别%26gt;...]
如果一个匿名的(ANONYMOUS)使用者是任何%26lt;类别%26gt;的成员,
那麽ftp伺服器将会实行一次setegid()到该%26lt;群组名称%26gt;
。这允许特殊类别的匿名使用者存取group-and-owner-read-
only的档案以及目录。%26lt;群组名称%26gt;是/etc/group里的一个
有效群组(或是你的getgrent()呼叫所查阅的地方)。
class%26lt;类别%26gt;%26lt;类型列表%26gt;%26lt;全球位址%26gt;[%26lt;全球位址%26gt;...]
定义使用者的%26lt;类别%26gt;,使用%26lt;全球位址%26gt;格式的来源位址。
可以定义%26lt;类别%26gt;多个成员。可以有多个"class"指令列出
该类别额外的成员。如果多个"calss"指令可以应用到该次
的连线期间,会使用在access档案中第一个列出的。尝试为
一台主机定义一个有效的类别失败的话将会引起存取被拒绝。
%26lt;类型列表%26gt;是一个以任何"anonymous","guest"及"real"
关键字所组成使用逗点隔开的列表。如果包含"real"关键字
,该类别可以符合使用[wiki]FTP[/wiki]存取真实的帐号的使用者,而如
果包含"anonymous"关键字该类别可以符合使用匿名FTP的
使用者。而"guest"关键字符合访客存取帐号(参阅"guest
group"以取得更多资讯)
%26lt;全球位址%26gt;可以是一个全球的领[wiki]域名[/wiki]称或是一个全球的数字
位址。
deny%26lt;全球位址%26gt;%26lt;讯息档案%26gt;
永远拒绝符合%26lt;全球位址%26gt;主机的存取。显示%26lt;讯息档案%26gt;。
%26lt;全球位址%26gt;可以是"!nameserved"用来拒绝没有名称伺服器
服务中的节点的存取。
guestgroup%26lt;群组名称%26gt;[%26lt;群组名称%26gt;...]
如果一个真实的(REAL)使用者是任何%26lt;群组名称%26gt;的成员,该
次连线期间的设立完全如同匿名的FTP一般。换句话说,会
执行一次chroot(),而且该使用者不再被允许发出USER及
PASS指令。%26lt;群组名称%26gt;是/etc/group里的一个有效群组(
或是你的getgrent()呼叫所查阅的地方)。
该使用者的home目录必须适当地加以设定,跟匿名FTP所
要做的完全一样。在passwd项目里的home目录栏位被分成
两个目录。第一个栏位将是chroot()呼叫的根目录参数。第
二个部份是相对於该根目录的使用者home目录。这两半是以
"/./"分隔开的。
范例:
在/etc/passwd里,该真实的项目:
guest1::100:92:Guest
Account:/ftp/./incoming:/etc/ftponly
当guest1成功地签入的时候,此ftp伺服器将会执行一次
chroot("/ftp")然後接著chdir("/incoming")。该guest
使用者将只能够存取/ftp下的目录[wiki]结构[/wiki](此目录对guest1
而言看起来跟用起来就像是/目录),就如同一个匿名FTP
使用者所见到的。
limit%26lt;类别%26gt;%26lt;[wiki]时间[/wiki]%26gt;%26lt;讯息档案%26gt;
在某%26lt;时间%26gt;将某%26lt;类别%26gt;限制为个使用者,若使用者
的存取被拒绝则显示%26lt;讯息档案%26gt;内容。限制的检查只在签入
时期实行。如果多个"limit"指令可以应用到该次连线期间
的话,会使用第一个适合的。尝试定义一个有效的限制失败,
或是值为-1的限制,等於不设限。%26lt;时间%26gt;使用UUCPL.sys
档案相同的格式。
loginfails%26lt;数字%26gt;
在%26lt;数字%26gt;签入失败後,记录一个″重复签入失败(repeated
loginfailures)讯息″并且终止该FTP连线。预设值是5。
private
使用者签入之後,SITEGROUP及SITE[wiki]GPA[/wiki]SS指令可以用来
指定一增强存取的群组以及与之有关的密码。如果该群组名称
以及密码是有效的,该使用者变成(经由setegid())一个在
群组存取档案/etc/ftpgroups中所指定群组的成员。
该群组存取档案的格式是:
存取群组名称:经编码的密码:真实群组名称
其中的存取群组是一个随意的(文数字+标点)字串。经编码
的密码是经由crypt(3)编码过的密码,与/etc/passwd里
的完全一样。真实群组名称是/etc/group里所列出有效群组
其中的一个名称。
注意:要使这个选项能运作於匿名的FTP使用者,该FTP伺
服器必须保持使/etc/group永久开启而且将群组存取档案载
入记忆体。这意指(1)该ftp伺服器现在使一个额外的档案
描述子(filedescriptor)开启,以及(2)经由SITEGROUP
使用者必须的密码以及存取权利的承认在一次FTP连线期间
以内将会是静态的。如果你有紧急的[wiki]需求[/wiki]要*现在*改变存取
群组以及/或是密码,那麽你只要砍掉(kill)所有正在执行中
的FTP伺服器。
资讯功能(InformationalCapabilities)
banner%26lt;路径%26gt;
作用与message指令类似,除了此banner是在使用者键入
使用者名称/密码之前显示以外。该%26lt;路径%26gt;系相对於真实的
系统根目录,不是匿名FTP所使用的根目录。
警告:这个指令的使用可以完全地防止不相容的FTP客户端
程式使用该FTP伺服器。并非所有的客户端都能够处理多行
回应(multi-lineresponses)(这正是banner显示的方式)
email%26lt;名称%26gt;
定义ftp档案处(archive)维护者的[wiki]电子[/wiki]邮递位址。这个字串
将会在每一次使用%E代换变数(magiccookie)的时候印出。
message%26lt;路径%26gt;{%26lt;时机%26gt;{%26lt;类别%26gt;...}}
定义一个配合%26lt;路径%26gt;的档案名称在使用者签入时或是在使用
切换工作目录指令的时候ftpd将会显示该档案的内容。该项
%26lt;时机%26gt;参数可以是"LOGIN"或"CWD=%26lt;目录%26gt;"。如果%26lt;时机%26gt;
是"CWD=%26lt;目录%26gt;"的话,%26lt;目录%26gt;指定将会引发该通知的新预设
目录。
该选择性的%26lt;类别%26gt;指定允许该讯息只对特殊类别的成员显示
。可以指定超过一个类别。
在说明档中可以有″代换变数(magiccookies)″这会使ftp
伺服器以指定的文字字串取代该变数:
%T本地时间(formThuNov1517:12:42
1990)
%FCWD所在分割区的剩馀[wiki]空间[/wiki](kbytes)
[并非所有系统都有支援]
%C目前的工作目录
%E定义在ftpaccess中维护者的电子邮递位址
%R远端主机名称
%L本地主机名称
%U签入时所给的使用者名称
%M这个类别所允许的最大使用者数目
%N这个类别目前的使用者数目
此项message将只显示一次以避免惹使用者讨厌。要记得当
MESSAGEs被一匿名的FTP使用者引发时,该%26lt;路径%26gt;必须是
相对於匿名FTP目录树的根目录。
readme%26lt;路径%26gt;{%26lt;时机%26gt;{%26lt;类别%26gt;}}
定义一个配合%26lt;路径%26gt;的档案名称在使用者签入时或是在使用
切换工作目录指令的时候ftpd将会告知使用者该档案存在及
修改的日期。%26lt;时机%26gt;参数可以是"LOGIN"或"CWD=%26lt;目录%26gt;"
。若%26lt;时机%26gt;是"CWD=%26lt;目录%26gt;"的话,%26lt;目录%26gt;指定将会引发
该通知的新预设目录。此项讯息将只显示一次以避免打扰使用
者。要记得当README讯息被一匿名的FTP使用者引发时,
该%26lt;路径%26gt;必须是相对於匿名FTP目录树的根目录。
该选择性的%26lt;类别%26gt;指定允许该讯息只对特殊类别的成员显示
。可以指定超过一个类别。
记录功能(LoggingCapabilities)
logcommands%26lt;类型列表%26gt;
以使用者启动个别的记录指令。%26lt;类型列表%26gt;是一个以任何的
"anonymous","guest"及"real"关键字所组成使用逗点隔
开的列表。如果包含"real"关键字,将会为使用FTP存取
真实帐号的使用者做记录,而如果包含"anonymous"关键字
则将会为使用匿名FTP的使用者做记录。"guest"关键字
符合访客存取帐号(参阅"guestgroup"以取得更多资讯)
logtransfers%26lt;类型列表%26gt;%26lt;目录%26gt;
启动对真实的或匿名的FTP使用者的档案传输记录。对传输
到伺服器(进来)的记录可以跟从伺服器传输(出去)分开来
启动。%26lt;类型列表%26gt;是一个以任何的"anonymous","guest"
及"real"关键字所组成使用逗点隔开的列表。如果其中包含
有"real"关键字,将会为使用FTP存取真实帐号的使用者
做记录,而如果包含"anonymous"关键字则将会为使用匿名
FTP的使用者做记录。而"guest"关键字符合访客存取帐号
(参阅"guestgroup"以取得更多资讯)。%26lt;目录%26gt;是一个以
任何的"inbound"以及"outbound"两个关键字所组成以逗
点隔开的列表,而且将会分别引发对送往该伺服器以及从该伺
服器送出的传输记录。
其它功能(MiscellaneousCapabilities)
alias%26lt;字串%26gt;%26lt;目录%26gt;
为一个目录定义一个别名,%26lt;字串%26gt;。可以用来加入[wiki]逻辑[/wiki]目录的
其它概念。
例如:
aliasrfc:/pub/doc/rfc
允许使用者从任何目录以指令"cdrfc:"存取/pub/doc/rfc
。别名只应用於cd指令上。
cdpath%26lt;目录%26gt;
定义cdpath里的一个项目。这定义一个在改变目录时使用的
搜寻路径。
例如:
cdpath/pub/packages
cdpath/.aliases
允许使用者直接cd到任何/pub/packages或/.alias目录
以下的目录。该搜寻路径系以该行出现在ftpaccess档案里
的顺序定义。
如果使用者所下的指令是:
cdfoo
则会以下列的顺序搜寻该目录:
./foo
一个称为"foo"的别名
/pub/packages/foo
/.aliases/foo
该cdpath只能够配合cd指令使用。如果你有数量很大的
别名那麽你可能想要设立一个目录别名链结到所有你希望能让
使用者使用的区域。
compress[...]
tar[...]
为任何符合任何的类别启动压缩(compress)或
包裹(tar)功能。实际的转换(conversions)定义在外部的档案
FTPLIB/ftpconversions之中。
shutdown%26lt;路径%26gt;
如果%26lt;路径%26gt;所指的档案存在,伺服器将会规律地检查该档案
以便得知该伺服器是否将要被停机。如果计画一次停机,则会
通告使用者,新的连线在停机之前的一段指定的时间之後会被
拒绝且目前的连线在停机之前的一段指定的时间之後会被停止
。%26lt;路径%26gt;指到一个结构如下的档案:
%26lt;年%26gt;%26lt;月%26gt;%26lt;日%26gt;%26lt;时%26gt;%26lt;分%26gt;%26lt;拒绝_期间%26gt;
%26lt;抛弃_期间%26gt;
%26lt;本文%26gt;
%26lt;年%26gt;任何%26gt;1970的年份
%26lt;月%26gt;0-11%26lt;----注意!
%26lt;时%26gt;0-23
%26lt;分%26gt;0-59
%26lt;拒绝_期间%26gt;以及%26lt;抛弃_期间%26gt;是在停机之前新的连线将会
被拒绝以及存在的连线将会被抛弃的一段格式为HHMM的期间
。
%26lt;本文%26gt;跟从任何讯息(参阅"message")的一般规则,配合
下列额外可用的代换变数:
%s系统将要停机的时间
%r新的连线将会被拒绝的时间
%d目前的连线将会被抛弃的时间
所有时间的格式都是:dddMMMDDhh:mm:ssYYYY。在该配
置档中只能有一个"shutdown"指令。
外部程式ftpshut(8)可以用来自动化产生这个档案的[wiki]程序[/wiki]。
许可功能(PermissionCapabilities)
chmod%26lt;类型列表%26gt;
delete%26lt;类型列表%26gt;
overwrite%26lt;类型列表%26gt;
umask%26lt;类型列表%26gt;
允许或不允许执行指定功能的能力。依照预设值,允许所有的
使用者执行。
%26lt;类型列表%26gt;是一个以任何"anonymous","guest"及"real"
关键字所组成使用逗点隔开的列表。
passwd-check()
定义该伺服器对匿名ftp密码检查的层级与执行。
none不执行密码检查。
trivial密码中必须包含一个'@'字元。
rfc822密码必须是一个rfc822相容的位址。
warn警告该使用者,但是允许他们签入。
enforce警告该使用者,并且接著将之踢出。
path-filter%26lt;类型列表%26gt;%26lt;讯息%26gt;%26lt;允许的字元集%26gt;
{%26lt;不允许的正规表示式%26gt;...}
对於属於%26lt;类型列表%26gt;的使用者,path-filter定义控制何种
档案名称允许或不允许的正规表示式(regularexpressions)
。可以有多个不允许的正规表示式。如果一个档案名称因为不
符合正规表示式的[wiki]标准[/wiki]而无效的话,将会显示%26lt;讯息%26gt;给该使
用者。例如:
path-filteranonymous/etc/pathmsg^[-A-Za-
z0-9._]*$^.^-
指定所有匿名使用者所上传的档案名称只能以A-Z,a-z,0-9
以及"._-"组成而且不能以一个"."或是一个"-"开始。
如果该档案名称是不合法的,则将会显示/etc/pathmsg给该
使用者。
upload%26lt;拥有者%26gt;%26lt;群组%26gt;
["dirs"│"nodirs"]
配合定义一个认可或拒绝上传的目录。
如果其认可上传,所有档案将会由%26lt;拥有者%26gt;以及%26lt;群组%26gt;所
拥有而且将会具有根据设置的权限(permission)。
目录系以最佳-符合(best-match)为基础。
例如:
upload*no
upload/incomingyesftpdaemon0666
upload/incoming/gifsyesjlcguest0600
nodirs
这将仅允许上传到/incoming以及/incoming/gifs。上传到
/incoming的档案将由ftp/daemon所拥有并且具有0666的
权限。上传到/incoming/gifs的档案将由jlc/guest拥有
并且具有0600的权限。
选择性的"dir"以及"nodir"关键字可以指定允许或不允许
使用mkdir指令建立新的子目录。
该upload关键字只应用於匿名的使用者。
档案
FTPLIB/ftpaccess
13511401130 2008-6-25 20:28
:'( :)