访问控制 - 设置服务器的访问控制
使用此节描述的指令来控制访问服务器的资源。
你按照用于访问那些文件的请求来把保护设置与文件组进行链接。使用DefProt 和Protect指令来定义你想要保护的请求。
可在单独的保护文件或直接在配置文件中定义实际的保护设置。在配置文件内定义, 可用Protection指令来定义和命名(标签)一个保护设置。也可直接在DefProt或Protect指令中定义一个保护设置。
本节还描述了定义一个保护设置的子指令。
参看"保护服务器"中关于保护服务器资源的每一步的指示。
DefProt - 指定匹配一个模板的请求的缺省保护设置
使用该指令来把缺省保护设置和匹配模板的请求联系起来。 注意: 要使保护正确工作, 配置文件中在任何Pass或Exec 指令之前必须放置DefProt和Protect指令。
该指令的格式为:
DefProt request-template
setup [FOR Server-IP-address
或 hostname]
注意: 指令必须在一行内输入,尽管这里显示的是两行。
request-template
你想要与缺省保护设置联系的请求模板。服务器对进入的客户请求和模板进行比较,在找到一个匹配的模板时与一个保护设置联系起来。
保护对于匹配模板的请求实际上没有被激活,除非请求也与后面的Protect指令中的模板相匹配。参看有关Protect指令的描述,以了解与DefProt一起使用的方法。
setup
你想要把它与匹配请求模板的请求联系起来的缺省保护设置。保护设置用保护子指令定义。参看"保护子指令"中关于保护子指令的描述。该参数可用以下三种形式之一:
标识包含保护子指令的单独文件的全路径与文件名。
与前面在Protection指令中定义的名称匹配的保护设置标签名。Protection指令包含保护子指令。
实际的保护子指令。子指令必须用花括号 {}括起来。左花括号字符必须是在与DefProt指令同一行中的最后一个字符。每个子指令有单独的一行。右花括号字符必须在跟在最后一个子指令行后面的单独一行中。在花括号之间不能放置注解行。
FOR Server-IP-address 或 hostname
如果使用多IP 地址或虚拟主机,请使用此参数指定IP 地址或主机名。(要了解使用多IP 地址或虚拟主机的更多信息,参看"运行拥有多个IP地址的服务器或虚拟主机"。) 服务器只对发送服务器此 IP 地址或此虚拟主机的请求使用指令。对于一IP地址, 这是服务器网络连接的地址,而不是正在请求的客户的地址。
可指定一个IP地址(例如, FOR 204.146.167.72) 或指定一个主机名(例如, FOR hostA.bcd.com)。
该参数是可选的。如果没有此参数,服务器对全部请求使用此指令,而不管进入的请求的IP地址或URL中的主机名是什么。
记录:
要使用该参数, 设置参数的形式必须是一个路径与文件名称或一个保护设置标签。设置参数不能使用在花括号之内的子指令。
要使用该参数,必须在设置参数和 IP地址或主机名 之间放置FOR或某些其他字符串 (不含空格)。
通配符不能用于指定服务器的IP 地址。
例:
DefProt /secret/* d:\server\protect\setup1.acc
上例标识包含保护子指令的一个单独文件。
DefProt /secret/* SECRET-PROT
上例用一个标签名来指向保护子指令。标签名必须与Protection指令中的标签名匹配。 Protection指令必须出现在DefProt指令之前。
DefProt {
AuthType Basic
ServerID restricted
PasswdFile d:\docs\WWW\restrict.pwd
GroupFile d:\docs\WWW\restrict.grp
GetMask authors
PutMask authors
}
上例包含作为DefProt指令一部分的保护子指令。
DefProt /secret/* CustomerA-PROT 9.67.106.79
DefProt /secret/* CustomerB-PROT 9.83.100.45
上例使用可选的IP地址参数。如果你的服务器收到由 /secret/开头的请求, 则按照请求进入的网络连接的IP地址来把各种缺省保护设置与请求联系起来。对于在9.67.106.79中进入的请求, 服务器把请求与定义在带CustomerA-PROT标签的Protection指令中的缺省保护联系起来。对于在9.83.100.45进入的请求, 服务器把请求与定义在带CustomerB-PROT标签的Protection指令中的缺省保护联系起来。
DefProt /secret/* CustomerA-PROT hostA.bcd.com
DefProt /secret/* CustomerB-PROT hostB.bcd.com
上例使用可选的主机名参数。如果服务器收到由 /secret/开头的请求, 则按照URL中的主机名把各种缺省保护设置与请求联系起来。对于进入hostA的请求, 服务器把请求与定义在带CustomerA-PROT标签的Protection指令中的缺省保护联系起来。对于进入hostB的请求, 服务器把请求与定义在带CustomerB-PROT标签的Protection指令中的缺省保护联系起来。
程序缺省设置
初始配置文件设置
Protect - 激活匹配一个模板的请求的保护设置
使用该指令来激活匹配一个模板的请求的保护设置规则 Attention: 要使保护正确工作, 配置文件中在任何Pass或Exec 指令之前必须放置DefProt和Protect指令。
该指令的格式对于两种情况是不同的:你想要指向一个包含保护子指令的标签或文件;你想要包含保护子指令作为Protect指令的一部分。
在你想要指向一个包含保护子指令的标签或文件时,它的格式如下:
Protect request-template [setup-file/label[FOR Server-IP-address
or hostname ]]
注意: 指令必须在一行内输入,尽管这里显示的是两行。
在你想要包含保护子指令作为Protect指令的一部分时,它的格式如下:
Protect 请求模板 [服务器IP地址或主机名] {
子指令 值
子指令 值
.
. .
}
request-template
你想要激活保护值的请求模板。服务器对进入的客户请求和模板进行比较,在找到一个匹配的模板时激活保护。
setup-file/label
在指向一个包含保护子指令的标签或文件时,使用该参数来标识你想要激活的匹配请求模板的请求的保护设置。
该参数是可选的。如果该参数省略, 则使用由最近的包含匹配模板的DefPort指令定义的保护设置。
保护设置用保护子指令定义。参看"保护子指令"中关于保护子指令的描述。如果有该参数, 则其可用以下三种形式之一:
标识包含保护子指令的单独文件的全路径与文件名。
与前面在Protection指令中定义的名称匹配的保护设置标签名。Protection指令包含保护子指令。
实际的保护子指令。子指令必须用花括号 {}括起来。左花括号字符必须是在与DefProt指令同一行中的最后一个字符。每个子指令有单独的一行。右花括号字符必须在跟在最后一个子指令行后面的单独一行中。在花括号之间不能放置注解行。
子指令值
在你想要包含保护子指令作为Protect指令的一部分时,使用该参数。左花括号字符必须是在与Protect指令同一行中的最后一个字符。每个子指令有单独的一行。右花括号字符必须在跟在最后一个子指令行后面的单独一行中。在花括号之间不能放置注解行。
参看"保护子指令"中关于保护子指令的描述。
FOR Server-IP-address or hostname
如果使用多IP 地址或虚拟主机,请使用此参数指定IP 地址或主机名。(要了解使用多IP 地址或虚拟主机的更多信息,参看"运行拥有多个IP地址的服务器或虚拟主机"。) 服务器只对发送服务器此 IP 地址或此虚拟主机的请求使用指令。对于一IP地址, 这是服务器网络连接的地址,而不是正在请求的客户的地址。
可指定一个IP地址(例如, FOR 204.146.167.72) 或指定一个主机名(例如, FOR hostA.bcd.com)。
该参数是可选的。如果没有此参数,服务器对全部请求使用此指令,而不管进入的请求的IP地址或URL中的主机名是什么。
记录:
要使用该参数, 必须同时使用设置文件/标签参数或子指令 值参数。
要与设置文件/标签参数同用该参数, 必须在设置文件/标签参数和 IP地址 或 主机名参数之间放置 FOR或某些其他字符串 (不含空格)。
要与子指令 值参数同用该参数, 不要在IP地址或主机名之前放置 FOR。
通配符不再能够用于指定服务器的IP 地址。
例:
Protection BUS-PROT {
AuthType Basic
ServerID restricted
PasswdFile d:\docs\WWW\restrict.pwd
GroupFile d:\docs\WWW\restrict.grp
GetMask authors
PutMask authors
}
DefProt /secret/* d:\server\protect\setup1.acc
Protect /secret/scoop/*
Protect /secret/business/* BUS-PROT
Protect /topsecret/* {
AuthType Basic
ServerID restricted
PasswdFile d:\docs\WWW\restrict.pwd
GroupFile d:\docs\WWW\restrict.grp
GetMask topbrass
PutMask topbrass
}
Pass /secret/scoop/* d:\WWW\restricted\*
Pa