﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-醉意的未来-文章分类-服务器管理</title><link>http://www.cnitblog.com/kenlen/category/1179.html</link><description>路漫漫其修远兮，吾将上下而求索！&lt;br&gt;
&lt;b&gt;For things to change, first I must change!&lt;/b&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 11:27:16 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 11:27:16 GMT</pubDate><ttl>60</ttl><item><title>ioFTPD</title><link>http://www.cnitblog.com/kenlen/articles/5411.html</link><dc:creator>Kenlen</dc:creator><author>Kenlen</author><pubDate>Thu, 15 Dec 2005 08:35:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlen/articles/5411.html</guid><wfw:comment>http://www.cnitblog.com/kenlen/comments/5411.html</wfw:comment><comments>http://www.cnitblog.com/kenlen/articles/5411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlen/comments/commentRss/5411.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlen/services/trackbacks/5411.html</trackback:ping><description><![CDATA[<P>1. 目录结构</P>
<P>ioFTPD主目录包括以下文件：Changelog, TODO, README.1ST</P>
<P>更新记录文件包含了ioFTPD的最新更新内容，可使您及时了解软件的bug修正及新增特征等。 <BR>TODO文档列出了ioFTPD未来版本中要添加的内容。 <BR>README.1ST文件为一些必要的法律公告。 </P>
<P>--------------------------------------------------------------------------------</P>
<P>ioFTPD下的目录包括：</P>
<P>/cache 包括缓存文件，您不能改动此目录下的任何文件。 <BR>/etc 目录内文件包括</P>
<P>UserIdTable -用户及其UID(用户ID)列表 <BR>GroupIdTable - 组及其GID（组ID）列表 <BR>default.vfs和admin.vfs - VFS示例文件 <BR>ioftpd.env - 定义环境变量 <BR>&nbsp;<BR>/groups 组数据文件。文件名即为GID（组ID） <BR>/help 帮助文件。 <BR>/lib TCL库 <BR>/logs 服务器运行记录文件如Error.log及Sysop.log等. <BR>/scripts ioFTPD的第三方脚本。 <BR>/site 您的site的缺省根目录。 <BR>/source 可能对脚本编写有用的源代码。 <BR>/system ioFTPD.exe, ioFTPD.ini, tcl84.dll <BR>/text 用户登陆时显示的信息文件，以及运行命令时显示的状态信息等文件。 <BR>/users 用户数据文件。文件名为UID(用户ID）。 </P>
<P>&nbsp;</P>
<P>2. 安装指南</P>
<P>此文档可让您在几分钟内最快速成功配置ioFTPD！</P>
<P>1. 解压ioFTPD文件包。</P>
<P>2. 编辑 ..\etc\default.vfs. 注意根目录必须加载为：";/";.<BR>如：:<BR>"d:\ftp" / &lt;-- 用已有的空目录作根目录。<BR>"e:\mp3" /mp3 &lt;-- 在根目录加载为/mp3</P>
<P>注意组ioftpd(缺省用户ioFTPD所在的组）的虚拟目录文件缺省为admin.vfs。要让ioftpd组使用default.vfs，可用命令： site change ioftpd groupvfsfile ..\etc\default.vfs 或将..\groups目录下0文件内的VFSFILE行删除即可。</P>
<P>3. 打开..\system\ioFTPD.ini.</P>
<P>在ioFTPD.ini中，注释行用“#”，取消选项/设置用分号";"。<BR># Comment<BR>;Disabled = True</P>
<P>3a. 设置DEVICES。.<BR>在多数情况下可用缺省设置。<BR>缺省device名为";Any";.<BR>[Any]<BR>Host = 0.0.0.0 &lt;-- 未定义IP，则允许在任何IP上连接。<BR>Ports = 1024-2048 &lt;-- 数据传输端口。<BR>Random = True &lt;-- 使用随机端口。</P>
<P>3b. 设置SERVICES（示例仅用于FTP_Service)</P>
<P>[FTP_Service]<BR>Type = FTP<BR>Device_Name = Any &lt;-- 使用的Device。缺省为";Any";<BR>Port = 9999 &lt;-- 连接端口<BR>Description = My FTP Service<BR>User_Limit = 10 &lt;-- 最大连接用户数。<BR>Allowed_Users = *<BR>Messages = ..\text\ftp<BR>Require_Encrypted_Auth = !* &lt;-- 无用户使用加密请求。<BR>Require_Encrypted_Data = !*<BR>;Certificate_Name = 192.168.1.11 &lt;-- SLL认证名（CN）:若不使用认证，请注释此行，否则你的ftpd不会运行！<BR>Explicit_Encryption = True<BR>Encryption_Protocol = SSL3<BR>Min_Cipher_Strength = 128<BR>Max_Cipher_Strength = 384<BR>;Get_External_Ident = False &lt;-- True/False. 保护支持<BR>;Data_Devices = &lt;-- 流量平衡设备<BR>;Random_Devices = False &lt;-- True/False. Data_Devices使用随机次序。</P>
<P>需要更高级的devices及services，如NAT及流量平衡等设置样例文件，请参见ioFTPD-Advanced.ini。</P>
<P>4. 用缺省的管理员（Master）帐号登陆，注意在ioFTPD下，用户名、密码、组名、标识名及其他名称均区分大小写！<BR>用户名：ioFTPD<BR>密码：ioFTPD</P>
<P>5. 使用SITE PASSWD &lt;新密码&gt; 更改缺省的ioFTPD密码。</P>
<P>6. 打开并编辑 ..\etc\Hosts.Rules，使其可由外部IP连接。 在最新的未注册版本中，缺省规则为禁止（DENY）. 注释此缺省行，并去掉ALLOW行的注释。若ioFTPD.exe正在运行，则需重启（修改Hosts.Rules需要完全重启)。</P>
<P>完成！现在请阅读此文档其余部分，提高您的配置技巧。</P>
<P>问：什么是Master帐号？</P>
<P>答：Master权限帐号登陆后可做几乎任何事。可浏览所有目录，传输任何文件，即使其被别的用户限制。可以更改别的用户或组（但不能更改别的Master帐号）的设置。Master的旗标是"M"。</P>
<P>其他FAQ，请见ioFTPD主页的知识基地.</P>
<P>-----------------------------------------------------------------------<BR>提示#1: 好的脚本、sfv校验、sitebot、已知bug及其他ioFTPD信息，请查看论坛.<BR>提示 #2: 在登陆服务器时出现错误，请检查..\logs\Error.log文件。<BR>提示 #3: 要学会如何用site命令控制ioFTPD。<BR>提示#4: 请阅读此文档的其他部分，更多了解ioFTPD。<BR>----------------------------------------------------------------------- </P>
<P>3. 虚拟文件系统(VFS)</P>
<P>VFS文件用来创建服务器的文件目录结构，用户登陆后即可见。示例的VFS文件为default.vfs和admin.vfs，均位于..\etc目录下。</P>
<P>基本VFS设置<BR>子目录加载<BR>用于存档的Raid目录加载<BR>不同用户和/或不同组的VFS文件<BR>私有目录<BR>符号链接<BR>目录权限设置</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>基本VFS设置</P>
<P>最快的VFS文件设置法是将一空目录设置为根目录，这样必须在你的VFS文件中将此目录加载为：";/"; 如下：<BR>"c:\ioFTPD\site" /<BR>在..\site目录下有些示例目录，你可以删除它们。</P>
<P>然后你可指定VFS根目录下要显示的目录。<BR>如：<BR>"c:\ioFTPD\site" / <BR>"d:\games" /games<BR>"e:\mp3" /mp3</P>
<P>也支持驱动器盘符的直接加载，但不推荐此设置，因为不能隐藏象系统卷标信息之类的系统目录。<BR>如：<BR>"f:\" /f-drive<BR>"g:\" /g-drive</P>
<P>要设置这些目录的权限（这样用户就可上传等），请用SITE CHMOD.</P>
<P>这些是ioftpd新手需要了解的基本设置，高级VFS设置请参见下面内容……</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>加载子目录</P>
<P>ioFTPD's VFS十分灵活，你可指定某些目录作为子目录。<BR>但要确保你的上级目录存在（此处为/mnt）。<BR>如：<BR>"c:\ioFTPD\site" /<BR>"c:\ioFTPD\mnt" /mnt<BR>"c:\" /mnt/c-drive<BR>"d:\" /mnt/d-drive<BR>"e:\" /mnt/cdrom</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>用于文件存储目的的Raid目录加载</P>
<P>可合并两个或更多目录内容，如下：<BR>注意：对于只读目的！尽管可写，但上传的文件（在Raided VFS目录下）会被存储在最后一个指定的设备下，此处为e:\dir2。</P>
<P>如：<BR>"d:\目录1" /存档文件<BR>"e:\目录2" /存档文件</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>不用用户和/或组的VFS文件</P>
<P>要为用户指定不同的VFS文件，仅需新建一VFS文件，并使用此命令来更改用户的VFS文件<BR>site change &lt;用户&gt; vfsfile ..\etc\custom.vfs</P>
<P>你也可改变某个组的VFS，该组下所有用户均自动使用此组VFS文件<BR>如：<BR>site change &lt;组&gt; groupvfsfile ..\etc\group1.vfs</P>
<P>重要！用户VFS文件会覆盖组VFS文件。你已用一指定的组VFS文件更改了组内某用户的VFS文件，且你想让此用户使用此组VFS文件，可清除..\users目录下的用户 user文件中的VFSFILE行，或者用命令更改此用户的VFS文件至此组VFS文件：site change vfsfile ..\etc\group1.vfs<BR>记住若将用户的VFS文件改变为与组VFS文件的文件，且然后又将此组VFS文件改变为另一个文件，你需要再一次改变用户的VFS文件。</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>私有目录</P>
<P>另一种不同目录的权限设置（包括不同的VFS）方法为私有路径。私有路径对其他用户隐藏，即使这些目录也存在于他们的VFS中。这样便很容易地设置VFS，而不必设置多重VFS文件（使某些用户使用某些目录）。除了Master,其他用户无权进入私有目录。私有目录不对Master隐藏。</P>
<P>SITE命令"site chattr"用于设置私有目录，此命令也可将目录转换为符号链接。</P>
<P>用法： site chattr +h "&lt;目录&gt;" "&lt;权限列表&gt;"<BR>示例： site chattr +h "私有目录" "-用户2 -用户5 =组11"</P>
<P>若目录名包含空格，或你指定多个用户和/或组权限时，则需要用引号("; ";) 引用。旗标也可在权限列表中使用。</P>
<P>使用以下命令查看当前私有目录的权限：<BR>site chattr +h "目录"</P>
<P>联想到+h是指";hidden";， 很容易便可记住+h是指私有目录，+l指目录链接。</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>符号链接</P>
<P>符号链接是一个快捷目录，可指向你的虚拟文件系统中的任何指定位置。</P>
<P>使用SITE命令"site chattr"将目录转换成符号链接。</P>
<P>用法： site chattr +l "&lt;目录&gt;" ""<BR>示例： site chattr +l "mp3-today" "/mp3/0525"</P>
<P>使用以下命令查看当前路径的链接指向：<BR>site chattr +l "符号链接名"</P>
<P>符号链接也可设置为私有路径。</P>
<P><BR>--------------------------------------------------------------------------------</P>
<P>目录权限的详细设置</P>
<P>如果你想禁止某些目录的上传，那么VFS的此部分设置是很有用的。权限前缀";!"; 表示禁止，如!-user !=group !F。也可指定多个用户和/或组，如!-user1 -user2 =group1，此处仅user1被禁止。</P>
<P>以下是ioFTPD.ini里的缺省设置：<BR>[VFS]<BR>...<BR>###<BR># 目录权限的详细设置 <BR>#<BR># priviledge = &lt;virtual path&gt; &lt;rights&gt;<BR>#<BR>Upload = * *<BR>Resume = * *<BR>Download = * *<BR>MakeDir = * *<BR>RemoveDir = * *<BR>RemoveOwnDir = * *<BR>Rename = * 1VM<BR>RenameOwn = * *<BR>Overwrite = * VM<BR>Delete = * 1VM<BR>DeleteOwn = * *<BR>NoStats = * !*</P>
<P>虚拟路径用此格式：/目录/*</P>
<P>-----------------------------------------------------------------------<BR>规则为首个匹配即生效。<BR>在虚拟目录和权限间，仅可使用空格，不要用tab键空格。<BR>最后的"*"是必须的，表示允许其他所有人。<BR>-----------------------------------------------------------------------</P>
<P>示例：<BR># 所有GuestGroup组的用户不可创建目录<BR># 也不可在mp3目录内上传文件，但其他用户被允许此二项。<BR>#<BR>MakeDir = /mp3/* !=GuestGroup *<BR>MakeDir = * *<BR>Upload = /mp3/* !=GuestGroup *<BR>Upload = * *</P>
<P>ioFTPD 4.9.0（包含RemoviOwnDir）后的版本有一个新功能"NoStats"，NoStats取消指定用户和/或组的状态统计。NoStats是路径相关的。记住，在这些指定目录下，这些用户和/或组的活动不被计入统计。</P>
<P>总将NoStats = * !*放在最底部，否则活动统计对其他用户也会失效。可在此行上方加入你自己的NoStats行。</P><img src ="http://www.cnitblog.com/kenlen/aggbug/5411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlen/" target="_blank">Kenlen</a> 2005-12-15 16:35 <a href="http://www.cnitblog.com/kenlen/articles/5411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>