Microsoft FTP7.5 For IIS7.x使用中的一些问题及解决方法
本文仅仅说明microsoft ftp7.5 for iis7.x的设置问题,包括ftp站点建立和设置、用户权限设置等等。
本文内容不会涉及如下内容:
如果你希望了解以上内容,可以参考http://www.iis.net/和微软网站的相关说明。
我要实现的目标:
在系统中创建ftp users用户组,并在该用户组下创建bimoo、bimooftp二个用户。
用户bimoo可以查看整个ftp站点的内容列表,同时拥有该站点中的子应用程序upload的读写权限,但不能查看和读写子应用程序upload以外的任何内容;bimooftp拥有整个站点的读写权限。
我们首先按照正确的方式操作一遍,文章最后会列出使用过程中遇到的一些问题。
打开iis管理器,右键点击"服务器名称"或"网站"节点,选择"add ftp site",如下图:
然后输入ftp 网站名称,选择内容目录的物理路径,点击"下一步"按钮,弹出如下窗口:
不要选中上面的"enable virtual host name"项,如果选中,建立网站后,使用ftp客户端连接,会出现如下错误:
ssl可以根据实际情况设置,这里选择"allow ssl",然后点击"下一步"按钮,弹出如下窗口:
这里启用basic认证[authentication]类型,在授权[authorization]选项中选择允许"指定用户[specified users]"访问,并输入用户名,多个用户名使用逗号[,],选择相应的权限[permissions]后,点击"完成"按钮。然后想这个ftp站点中添加二个"应用程序"或"虚拟目录",这时候一个ftp站点就建立好了。
我这里建立的ftp站点名称是"ftp_server",其中有sites和upload二个应用程序,大致结构如下图所示:
下面开始说一下用户授权的问题,我这里不允许匿名用户访问,所以我在站点的"ftp authentication"中启用"basic authentication"认证类型,禁用了"anonymous authentication"。然后在"ftp authorization rules"中添加授权规则,如下图:
给ftp_server中的应用程序sites中的"ftp authorization rules"中添加授权规则,如下图:
给ftp_server中的应用程序upload中的"ftp authorization rules"中添加授权规则,如下图:
说明:由于这里用户bimooftp和bimoo都隶属ftp users用户组,而且他们都具有read,write权限,所以也可以直接给用户组ftp users设置规则。另外,子应用程序和虚拟目录会自动继承整个ftp站点的授权规则,这里我删除了继承来的规则,添加自己的规则。
还有一个问题,在站点的"ftp directory browsing"中,"directory listing style"中一定选择"ms-dos",如果选择"unix",那么使用ftp客户端连接时,无法列出目录和文件列表。如下图:
ok,如果您安装上面的步骤做完,那么就应该实现目标了,用户bimoo可以读写upload应用程序,可以查看整个ftp站点的内容列表,但是却不能查看或读写sites应用程序的内容;bimooftp用户拥有这个站点的查看和读写权限。现在使用ftp客户端试一下吧。
下面开始说一下我安装过程中遇到的问题:
刚开始对用户进行授权的时候,给用户bimooftp授予整个ftp站点的读写权限,没有给用户bimoo授予任何权限;然后给用户bimoo授予ftp站点子应用程序sites的读写权限。此时用户bimooftp可以连接ftp站点,但用户bimoo连接子应用程序sites时,却出现下面的错误:
解决方法:
在ftp站点级别授予用户bimoo读权限。如果希望把虚拟目录或者子应用程序授权给用户,必须保证给用户对其父目录或站点至少拥有读权限。
如果给ftp站点绑定域名,比如ftp://ftp.bmshops.com,那么就会出现下面的错误:
解决方法:
不要给ftp站点绑定域名,主机头留空即可。这样就不能建立多个ftp站点,不知道有没有更好的方法解决这个问题。
后来在iis的官方网站中的一篇文章中找到答案,文章地址如下:
http://learn.iis.net/page.aspx/320/using-ftp-virtual-host-names/
由于ftp7.5提供了类似web站点功能的虚拟主机[virtual host]功能,多个ftp站点都可以使用21端口和相同的ip地址,所以在访问ftp站点的时候,用户名需要使用virtualhost|username的形式,否则就会发生"503 valid hostname is expected"错误。
这样就解决了ftp站点绑定域名和建立多个ftp站点的问题,哈哈:)
ftp站点设置不当
刚开始由于设置不当,导致ftp客户端连接可以成功,但是无法列出目录和文件。后来网搜了一下,大部分都说将ftp客户端的数据连接类型改为被动模式[pasv mode],但还是不行。后来发现,在ftp服务器端把directory listing style设置成了unix,设置为ms-dos后解决。
参考:
基本就写这些吧,欢迎大家指点、拍砖,来者不拒!
作者:(technology life--张涛的技术博客)
推荐阅读