




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1 什么是FTP:文件传输协议原理 1.1.1 命令选择 1.1.2 命令格式 1.2 wu-Ftpd的安装 1.3 让FTP服务器运转起来 1.4 配置文件的设置 1.4.1 /etc/ftpaccess的设置 1.4.2 /etc/ftpusers和/etc/ftphosts的设置 1.4.3 /etc/ftpconversions设置 1.4.1 wu-ftp的相关程序 1.5 开设只能FTP的帐户 1.6 设置虚拟FTP主机 什么是FTP:文件传输协议原理 互联网文件传输协议(File Transfer Protocol ,FTP) 标准是在RFC959说明的。该协议定义了一个从远程计算机系统和本地计算机系统之间传输文件的一个标准。一般来说,传输文件的用户需要先经过认证以后才能登录网站,然后方能访问在远程服务器的文件。而大多数的FTP服务器往往提供一个GUEST的公共帐户来允许没有远程服务器的用户可以访问该FTP服务器。 一个FTP会话通常包括五个软件元素的交互。 用户接口 提供了一个用户接口并使用客户端协议解释器的服务 客户 PI 客户协议解释器,其项远程服务器协议机发送命令并且驱动客户数据传输过程 服务器PI 服务器协议解释器,响应客户协议机发出的命令并驱动服务器端数据传输过程 客户 DTP 客户数据传输过程,其负责完成和服务器数据传输过程及客户端本地文件系统的通信 服务DTP 服务器数据传输过程,其负责完成和客户数据传输过程及服务器端文件系统的通信 在RFC 959中,一般使用用户这个名词来指代客户。RFC 959定义了客户PI和服务器PI交互的方式和规范。用户接口与PI和DTP交互的机理都并不是协议标准的一部分。PI和DTP往往通常是在同一个程序模块中实现的。 在FTP会话中,一共会存在有两个独立的网络连接,一个是由两端的PI使用的,另一个是由两端的DTP使用的。PI之间的连接一般被称作控制连接(control connection),DTP之间的连接被称做数据连接(data connection) 使用TCP服务的控制和数据连接 通常情况下,FTO服务器监听端口号21来等待控制连接建立请求。而数据连接端口号的选择依赖于控制连接上命令。通常是客户发送一个控制消息来指定客户监听并等待服务器端发送数据连接建立请求的端口号。 对数据传输和控制命令传输来使用不同的独立连接有如下优点:两个连接可以选择不同的合适服务质量,如:对控制连接来说高需要更小的延迟时间,对数据连接来说需要更大的数据吞吐量;而且可以避免实现数据流中的命令的通明性及逃逸。 当传输建立时,总是由客户端首先发起。然而客户和服务器都可能是数据发送者。除了传输用户请求下载文件,数据传输过程同样在客户端请求列服务器端目录结构时建立。 1.1.1 命令选择 当一个传输建立时,一般通常需要指定四个方面的属性: 文件类型 该属性指定如何将文件的数据匹配成适于传输的格式,一共有四种可能的选择: ASCII文件类型 在发送端,文件从本地文本文件格式转换为 NVT ASCII格式,每行结束有一个CR/LF对来标识。 在接收端,再被转换为本地的文本格式。 这说明了为什么Unix主机之间传输文本文件为何传输的数据量要大于文件的实际大小。若传输一段端或传输两端都不使用ASCII文本编码,则是应该由数据传输过程来实现本地编码和NVT ASCII 编码之间的转换。 EBCDIC文件类型 类似于ASCII,区别仅仅上使用EBCDIC字符编码 图象 (或二进制)文件类型 文件以本地传输内容传输,在远端以同本地完全相同的内容存储。 本地文件系统 用在字节大小不是8位的环境下。没字节位数由发送者指定。 在实际应用中,只有ASCII和图象格式使用的较多。 格式控制 该属性是和将文本文件最后传送到打印设备相关的,其中有多种方式来实现将垂直格式信息编码到文件中,包括指示一个新页开始的方式。有如下方式可供选择: 无须打印格式控制,这是缺省值 Telnet打印控制,在telnet协议中定义的控制字符包含在数据流中。. Fortran打印控制, 该属性在实际中很少使用。 结构 文件可以拥有内部结构,在传输中该结构被保留。由数据传输过程来负责在传输中的结构及本地结构之间相互匹配,有三种可能性: 文件结构 这实际上意味着文件被看作没有内部结构的连续的字节流。 记录结构 文件是有一系列记录组成的结构。这只适用于文本文件。 页面结构 也可以称做块结构。每一页都伴随一个页号来传输,从而以顺序的方式来完成传输。 页面结构很少在实际中遇到。记录结构也不是很常见。对于文本文件使用ASCII文件类型可以获得相同的效果。 传输模式 该属性可以取三个不同的值: 流模式 文件的以字节流的方式传输。 块模式 文件以一个块连接一个块的方式传输,每个块的开头都有一个头。 压缩模式 一个简单的运程长度压缩编码被应用,来压缩连续的相同的字节。 实际中,一般只有流模式被使用。而压缩一般通过使用各种其他的工具程序来获得。 当一次传输被建立,客户端一般指定一个或多个前面说明的属性。若服务器端不能支持某个选项,服务器将用一个错误信息来响应客户端,并不具有协商机制。 FTP提供了充足的命令来使用户和远程建立连接并访问远程文件系统。 1.1.2 命令格式 命令以NVT ASCII串的格式被传输。每个命令以三个或四个大写的NVT ASCII字符开始,后面带有选项参数和一个CR/LF对来标识命令结束 应答由三个NVT ASCII数字及一个选项消息组成。 一个长的应答也许会有多个消息组成,第一个消息的三个数字后带有一个破折号,最后的消息不带有破折号。中间的消息无须携带三个数字,但是如果带了三个数字,则也需要破折号。 下面是所有的命令的列表。带有星号的命令一般很少使用,所以往往在具体实现中不支持。 String Meaning ABOR 放弃传输 *ACCT 某些系统将帐号和用户与文件系统相关联 *ALLO 为即将传送的文件分配空间。后面携带的参数来确定字节数 *APPE 将文件附加到已经存在的文件后面 CDUP 在远程系统上将当前目录切换到上级父目录 CWD 改变远程系统的工作目录 DELE 删除远程系统的文件 HELP 读取服务器的帮助信息,如:支持的命令的列表 LIST 在一个新建立的数据连接上发送当前工作目录下的文件名列表 MKD 创建目录 MODE 指定传输模式,可携带的参数是:S、B或 C. NLST 在一个新建立的数据连接上发送一个当前目录下的“完全”的目录列表 NOOP 空操作,防止连接断掉 PASS 提供一个用户登录密码,必须立即跟随在USER命令后 *PASV 指定服务器数据传输过程监听等待客户端的数据连接连接建立请求 PORT 指定客户端监听等待服务器端建立的连接的端口号 PWD 显示服务器端的当前工作目录名 QUIT 退出登录并终止连接 *REIN 重新初始化,退出登录但是并不断开连接,后面必须随后发出一个新的USER命令 *REST 从服务器的一个标识处重新开始传输 RETR 从远程系统取回一个文件 RMD 删除一个目录 *RNFR 指定要被命名的文件的老的路径名,随后必须是一个RNTO命令 *RNTO 指定要被命名的文件的新的路径名 *SITE 站点特有的服务器提供的服务 *SMNT 结构加载,提供一个文件系统结构的远程系统路径名 *STAT 状态信息 STOR 上载一个文件到服务器上,若文件已经存在则覆盖 *STOU 上载一个文件到服务器上,不覆盖已经存在的文件 STRU 指定文件结构,参数可以是F、R或P. *SYST 报告远程系统的操作系统类型 TYPE 指定文件类型,参数可以是A、E、I、L只有TYPE A和TYPE I常用 控制连接命令应答有如下形式: Type Description 1yz 主动初步应答,在发送另一个命令以前等待另一个应答 2yz 主动最后应答,最后一个命令成功结束 3yz 主动中间应答,必须再发送一个命令 4yz 暂时被动应答,要求的动作当时不能完成,但可以重试 5yz 永久被动应答,要求的动作不能完成,不应该重试 y数字编码进一步的信息 Digit Meaning 0 语法错误 1 信息 2 连接状态 3 认证和记帐 4 保留 5 File s文件系统状态 下面是一些典型的消息: Number Meaning 125 数据连接打开,传输开始 200 命令OK 331 用户名OK 需要输入密码 425 不能打开数据连接 452 错误写文件 500 语法错误-不可识别的命 具体的详细情况可以参见RFC wu-Ftpd的官方权威站点地址是:/。 1.2 wu-Ftpd的安装 当前,Linux环境下有许多ftp服务器软件可供选择,但是目前最常见的仍然是wu-Ftpd服务器。这里主要讨论该软件的安装和配置。 一般来说,在安装了linux时,缺省都会自动安装wu-ftpd服务器,但是有时候为了某种需要也需要自己亲自重新安装该服务器软件。安装wu-Ftpd有两方式,一种是安装rpm形式的发布包;一种是自己动手去编译生成Ftp服务器。 rpm包可以在/linux/RPM/WByName.html处下载得到,以rpm包方式安装非常简单,只需要在按下面的简单的几个步骤就可以完成,假设下载得到的rpm包存放在/tmp目录下: #cd /tmp #rpm -ivh wu-ftpd-1.6.0-9.i386.rpm 压缩的源代码可以在/pub/wu-ftpd/出得到。这里我们以最新的1.6.0为例说明如何编译安装wu-ftpd。 1、解开源代码 1) 将压缩的源代码拷贝到/usr/src下 #cp wu-ftpd.1.6.0.tar.gz /usr/src 2) 对压缩文档进行解压缩: #tar xvfz wu-ftpd.1.6.0.tar.gz #cd wu-ftpd-1.6.0 2、敲入命令 ./build xxx ,可以在这里指定一个C语言编译器:./build CC=yyy xxx yyy 指用来替代 cc 的其他的编译器。对于linux环境下的gcc编译器,命令应该为:./build CC=gcc xxx #build CC=gcc lnx xxx可以取下面的值: gen : 通用make(当移植到心得系统时需要拷贝它) aix : IBM AIX aux : AU/X bdi : BSD/OS bsd : BSD dec : DEC Unix 3.X du4 : DEC Unix 4.X or later dyn : Dynix fbs : FreeBSD 1.0 or later hiu : Hitachi Unix hpx : HP-UX lnx : Linux (tested on 1.0.30) nbs : NetBSD 1.X nx2 : NeXTstep 1.x nx3 : NeXTstep 3.x osf : OSF/1 osx : Mac OS X ptx : ? sco : SCO Unix 3.2v4.2/SCO OpenServer 5 sgi : SGI Irix 4.0.5a sny : Sony NewsOS sol : SunOS 5.x / Solaris 1.x s41 : SunOS 4.1.x ult : Ultrix 4.x uxw : UnixWare 1.1 or later clean : Clean up object files and such to reduce disk space after building. install: Install ftpd Copying Makefiles. Linking src/config.h Making support library. gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c strcasestr.c gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c authuser.c gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c snprintf.c rm -f libsupport.a ar cq libsupport.a strcasestr.o authuser.o snprintf.o ranlib libsupport.a : : : : : : : : : 编译成功以后将生成如下几个可执行文件: ftpd FTP服务器程序 ftpshut 用于关闭FTP守护进程的程序 ftpcount 记数程序,显示目前ftp登录的人数 ftpwho 查看当前FTP服务器的连线情况,类似与系统的who命令,只不过是查看ftp登录的用户 ckconfig 检查FTP的设置是否正确 ftprestart 重新启动ftp服务器 privatepw 改变wu_ftpd组访问文件信息 3、若只是升级到一个新的版本,应该首先备份系统所有的旧的配置文件。否则这些配置文件将被覆盖。为了适应自己的需求,应当编辑样本配置文件来满足自己的要求,具体配置文件的需求参见后面的内容。 4、以超级用户身份敲入命令./build install #build install installing binaries. install -c -o bin -g bin -m 110 bin/ftpd /usr/sbin/in.ftpd install -c -o bin -g bin -m 111 bin/ftpshut /usr/bin/ftpshut install -c -o bin -g bin -m 111 bin/ftprestart /usr/bin/ftprestart install -c -o bin -g bin -m 111 bin/ftpcount /usr/bin/ftpcount install -c -o bin -g bin -m 111 bin/ftpwho /usr/bin/ftpwho install -c -o bin -g bin -m 111 bin/privatepw /usr/bin/privatepw installing manpages. install -c -o bin -g bin -m 444 doc/ftpcount.1 /usr/man/man1/ftpcount.1 install -c -o bin -g bin -m 444 doc/ftpwho.1 /usr/man/man1/ftpwho.1 install -c -o bin -g bin -m 444 doc/ftpaccess.5 /usr/man/man5/ftpaccess.5 install -c -o bin -g bin -m 444 doc/ftpconversions.5 /usr/man/man5/ftpconversio5 install -c -o bin -g bin -m 444 doc/ftphosts.5 /usr/man/man5/ftphosts.5 install -c -o bin -g bin -m 444 doc/xferlog.5 /usr/man/man5/xferlog.5 install -c -o bin -g bin -m 444 doc/ftpd.8 /usr/man/man8/ftpd.8 5、编辑 /etc/inetd.conf 文件,指向新的ftpd守护进程,大多数情况下,这一步是不必的,因为在build install时,会将新的守护进程拷贝覆盖老的守护进程。若希望使用ftpd的增强的扩展功能,应该在这行最后加上-a选项。 ftpd守护进程一般可以携带如下参数,也可以不带任何参数: -d debug参数,当ftpd守护进程出现错误时,会将错误信息写入到系统记录文件/usr/adm/syslog中 -l 记录每次ftp会话信息到/usr/adm/messages中 -t 设置当FTP客户端多久无操作就自动断线,这个参数后面指定等待的时间,如 -t 600 表示若客户 端若连续10分钟没有动作就自动断线,缺省值是15分钟 -a 使用ftpaccess配置文件内容对ftpd进行更详细复杂的设置 -A 不使用ftpaccess配置文件的设置,缺省值是-A -i 当客户端有上载文件的动作时,就记录在文件xferlog中 -L 使用户连接ftp服务器期间使用的所有命令都被记录到/usr/adm/messages中 6、拷贝tar、gzip、gunzip、compress、uncompress等文件到 ftp/bin中,拷贝ls为ftp/bin/ls。 7、若是第一次安装,使用ckconfig程序查找ftpd的各种配置文件存放目录:ftpconversions、ftpusers、 和ftpgroups。在doc/examples目录下有样本文件。ckconfig是一个可执行程序,确保修复该程序检测到的任何问题。 1.3 让FTP服务器运转起来 一般来说,只要正确地编译安装了wu-ftpd,该服务器就可以正常运行。用户可以通过FTP命令从各种系统上连接该服务器。 1.4 配置文件的设置 1.4.1 /etc/ftpaccess的设置 这个配置文件是FTP服务器最重要的配置文件,这个文件的设置决定了FTP是否可以正常工作及许多访问权限的设置。如下面的例子所示: class all real,guest,anonymous * limit all 10 Any /etc/msgs/msg.dead readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all log commands real log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg email userhostname 下面是设置文件各个指示(directive)的详细说明: 指示: loginfails n 密码输入n次就自动断开连接 指示:autogroup 组名 类别 . 若一个匿名用户属于任何一个参数类别的类,则FTP服务器将实施setegid()调用使其属于这个组名定义的组,这样做是为了实现某些特定类别的匿名用户可以访问一些只允许本组及拥有者可以访问的文件。组名必须是/etc/group内定义的有效组。 指示: class 类名 类别(real、guest、anonumous) IP地址 这个指示是设定FTP服务器用户的类别。 FTP服务器的用户可以分为以下三种类别: real 在该FTP服务器上拥有合法帐户的用户; guest 另外定义某些特定组的用户; anonymous 匿名用户; 举例说明: class outworld real,guest,anonymous * 定义一个名为outworld的类,该类包含三种类型的用户:real,guest,anonymous。该类在后面的指示中使用。其中*是类定义中的IP地址部分,表示网络上的所用主机。也就是说明允许任何主机连接FTP服务器。若希望对访问FTP的主机进行一定的权限设置,可以这样做: class friend real,guest,anonymous *. 201.101.13.* 指定义一个friend类,该类从*. 及201.101.13.*访问FTP服务器时有特定的权限设定。 指示: limit 类别 人数 时间 文件名 该指示设定在某个类在某个时间内允许连接FTP服务器的人数的限制,并指定当连接人数超过限制,后面的用户连接时显示给用户的消息信息。 举例说明: limit local 20 Any /tmp/message/msg.toomany 上面的例子限定local这个类中的拥护同一时间只能有20人同时上网连接这台FTP服务器,若超过20人则显示/tmp/message/msg.toomany的文件的内容 limit outworld 100 MoTu|Any 2200-0800 /tmp/message/msg.limit 这个例子限制outworld这个类的用户只能在周一周二或每天的晚上10点到第二天早上的8点之间访问该FTP服务器,而且同时连线的人数不可以超过100人,若超过100人,则显示/tmp/message/msg.limit的文件的内容 /tmp/message/msg.limit的内容为: 对不起!本服务器只允许匿名用户在周一周二全天及其他每天晚上10点到第二天早上的8点之间访问,当前时间为%T;而且只允许同时有%M个匿名用户访问,当前有%N个用户在访问该服务器。请在合适的时间访问本FTP服务器,谢谢! 这里的%M是一个变量,代表同时允许连接的人数的上限,FTP服务器可以用前面设置的值自动替代该变量,其他允许的变量包括: %T 本地当前时间; %F CWD所在分区剩余空间,以KB为单位。但该变量不是所有系统都支持。 %C 当前工作目录; %E 定义在/etc/ftpaccess文件中的系统管理员的E-mail地址; %R 远端主机名; %L 本地主机名; %U 登录时所给的用户名; %N 这个类别当前连接的用户数目; 利用这些参数,可以编辑一个详细的说明文件,这样可以让用户清楚当前服务器资源使用情况。 指示: readme 说明文件 指令 当用户执行指定的指令时,系统就会自动显示所设置的说明文件; 举例说明: readme README* login 当用户执行登录动作时,只要以README开头的文件内容就会显示给用户。 readme README* cwd=* 表示用户切换目录时(cwd),只要以README开头的文件内容就会显示给用户。 通常README*应该是该目录下文件的说明,让登录的用户可以清楚地知道目录中存放了那些文件; 指示: message 文件名 指令 使当用户执行特定的指令时,系统就将指定的文件内容显示给用户; 举例说明: message /msg.welcome login 指定当用户登录时,将自动显示/tmp/message/msg.welcome的内容给用户,注意这里的/msg.welcome指ftp根目录下的msg.welcome文件,即/home/ftp/msg.welcome。 message /welcome cwd=* 指定当用户切换另一个目录时,只要目录中有msg.welcome文件,就显示给用户 指示: compress (yes/no) 类别 设置哪个类别的用户可以使用压缩功能; 举例: compress yes local outworld 允许local 和outworld两个类别的 用户使用压缩功能 指示: tar (yes/no) 类别 指定哪个类别的用户可以使用tar功能; 指示: passwd-check (none/trivial/rfc822) (enforce/warn) 设定当用户以匿名方式登录服务器时密码的方式: none 表示不对密码进行验证,任何密码都可以登录; trival 表示只要密码中包含就可以登录; rfc822 表示密码一定要符合rfc822中规定的E-mail格式才能登录。如: enforce 表示输入的密码不符合指定格式就不允许登录; warn 表示输入的密码不符合指定格式显示警告信息,但仍然允许登录; 指示: log commands 类别(read/guest/anonumous) 设定那些用户登录时,所使用的操作会被记录在文件/usr/adm/xferlog中。 指示: log transfer 类别(read/guest/anonumous) (inbound/outbound) 设定指定的用户类别在上载还是下载时的相关信息被记录到/usr/adm/xferlog中。 举例说明: log transfer anonymous,real inbound,outbound 当anonymous或real用户登录后,上载和下载的操作会被记录在文件/usr/adm/xferlog中。 指示: shutdown 文件名 FTP服务器关闭的时间可以后面的文件名中指定的文件中指定,设定的时间一到,便无法登录FTP服务器了,只有将这个文件删除才能恢复FTP服务器。文件的格式可以由命令ftpshut来建立。 指示: delete (yes/no) 类别(real/anonymous/guest) 设定是否允许指定用户使用delete命令。 举例说明: delete no guest,anonymous 设定大概内登录的用户为guest或anonymous上不允许执行delete命令。 指示: overwrite (yes/no) 类别(real/anonymous/guest) 设定是否允许指定用户使用overwrite指令。 指示: reame (yes/no) 类别(real/anonymous/guest) 设定是否允许指定用户使用readme指令。 指示: chmod (yes/no) 类别(real/anonymous/guest) 设定是否允许指定用户使用chmod指令。 指示: umask (yes/no) 类别(real/anonymous/guest) 设定是否允许指定用户使用umask指令。 指示: upload absolute|relative class=. - dirs|nodirs 定义允许用来上载的目录。若允许上载,所有新上载的文件的所有者及组由和定义 ,访问权限将为。对于覆盖老文件的上载文件将保持原来的所有者及访问权限信息。文件上载的权限信息由最大匹配目录项定义,如: upload /var/ftp * no upload /var/ftp /incoming yes ftp daemon 0666 upload /var/ftp /incoming/gifs yes jlc guest 0600 nodirs would only allow uploads into /incoming and /incom- : 将只允许/incoming和/incom-ing/gifs目录上载。上载到/incoming目录下的文件将属于ftp/daemon,访问权限为0666;而上载到/incoming/gifs下的文件将属于jlc/guest,访问权限为0600。应该注意的是 必须匹配ftp用户的passwd文件中的主目录。 dirs和nodirs选项用来设定是否允许在该目录下创建新的子目录。但是缺省是允许创建子目录的。 设定新创建的目录的访问权限,缺省为0777。 上载指示只能施用于用户主目录(chroot()的参数)等同于的用户,可以为*来表示匹配任何主目录。 和也可能指定为*,在这种情况下,任何上载的文件或创建的目录的所有者都等于起父目录的所有者。 选项absolute|relative指定是是绝对路径还是相对于chroot()参数指定的目录的相对路径。缺省是绝对路径。也可以指定任意多个class=来进行进一步限定。若指定了任何目录,则该上载指示只影响这些组的用户。 指示: alias 目录别名 目录路径 给指定目录设置一个别名,当切换目录时可以使用别名。 举例说明: alias xwin /pub/linux/xwindows 为/pub/linux/xwindows设置别名xwin,登录以后只要输入命令cd xwin就可以进入该目录。 指示: cdpath 目录 该功能和系统的PATH环境变量设置类似,当cd /etc时,FTP首先查看当前目录下是否有etc子目录,无则看是否有别名,若没有则根据该指示设定的路径查询。 举例说明: cdpath /pub/linux cdpath /pub cdpath / 搜索顺序为:/pub/linux /pub / 指示: path-filter 类别(real/anonymous/guest) 目录 设定上载文件名限制。 举例说明: path-filter anonymous /etc/pathmsg-A-Za-z0-9_.*$.- path-filter guest /etc/pathmsg-A-Za-z0-9_.*$.- 设置限制anonymous和guest用户上载的文件名只能包含A-Z、a-z、0-9和._-,名字以.和-开头的文件不能上载到服务器上。 指示: guestgroup . guestuser . realgroup . realuser . 对于guestgroup指示,若一个真实(real)用户属于任何一个所指定的组,则其FTP会话都被FTP服务器以匿名的方式进行处理。也就是说,chroot()被调用,用户不再允许发出USER和 PASS 命令。必须是有效的组。 这里用户的home目录必须被争取的设置,要确实和匿名用户一致,/etc/passwd中的相关项的home目录被分割为两个部分,第一部分是chroot()调用的根目录参数,第二个是用户相对于根目录的主目录,两部分之间以/./分隔,如: guest1:100:92:Guest Account:/ftp/./incoming:/etc/ftponly 当guest1成功登录进入,FTP服务器将调用chroot(/ftp)然后调用chdir(/incoming)。则guest1就如同匿名用户一样只能访问/ftp下面的容(对于guest1来说,它就是/)。 可以是组名或数字ID。若使用数字ID,需要在数字前面加上一个%。使用*表示所有组。 guestuser和guestgroup指示类似,只不过是限定一个单一用户罢了。 realuser和realgroup有同样的语法,但是和guestuser及guestgroup起相反的作用,其是允许某个组的用户或某个用户以真实身份访问FTP服务器。如: guestuser * realgroup admin 指定所有的非匿名用户登录进入服务器以后,都被做为匿名用户处理,但是admin组的用户是例外,登录以后以真实身份存在。 指示: guestgroup 功能 设定guest组的功能。 举例说明: guestgroup ftponly 指示: nice 设定FTP服务器守护进程的调度优先级。 指示: defumask 若远程用户属于class,则守护进程创建的文件的umask为umask。若没有指定class则将umask作为缺省的umask. 指示: tcpwindow 设置数据连接的TCP窗口大小,若不明白含义,一般不要去设置它。 指示:keepalive 设置TCP socket的SO_KEEPALIVE参数选项。 指示:timeout accept timeout connect timeout data timeout idle timeout maxidle timeout RFC931 设置各种超时时钟,这些参数必须在对TCP协议非常熟悉的情况下才应该去设定,一般不要改动这些值,具体含义参见man ftpaccess。 指示: file-limit 限制某个组的任何一个用户允许上载的文件的数量,若没有指定class,则该限制施用于所有没有限定的组。raw指示这个限制包括所有的传输,而不仅仅是数据文件。 指示:byte-limit 限制某个类的任何一个用户允许传输的数据总量。 指示: limit-time *|anonymous|guest 限定一个对话允许的持续时间,缺省无限制。真实用户没有该限制。 指示:guestserver 控制哪个站点允许进行匿名连接,若没有指定hostname,则拒绝所有匿名连接。 指示: noretrieve absolute|relative class= . - . 设定拒绝那些类访问哪些特定文件。例如: noretrieve /etc/passwd core 指定任何访问者都不可以访问文件/etc目录下的passwd文件和所有的名为core的文件。 指示:allow-retrieve absolute|relative class=. - . 允许访问这些文件。 指示:private 当一个用户登录进入,指示SITE GROUP和 and SITE GPASS用来指定一个增强的访问组和相应的密码。若输入的组名和密码有效的话,该用户将变为该组的成员,具有该组的访问权限。 指示:greeting full|brief|terse greeting text 允许控制在远程用户登陆进来以后,给用户多少greet信息及信息内容。 指示:banner 和message类似,不过banner消息是在用户输入用户名和密码以前显示给用户的。 指示: hostname 定义FTP服务器缺省的主机名。 指示: email 定义FTP维护者的emai地址。 指示: log security (anonymous|guest|real) 使记录违背安全规则如:(noretrieve, .notar, .)的命令。 指示:log syslog log syslog+xferlog 重定向记录消息到系统记录文件syslog,缺省只记录到xferlog。 指示:daemonaddress 若该值没有被设置,则服务器则监听所有的接入请求,否则,服务器只接受来自定义的连接请求。这个设置一般不要设置,设置以后会阻止使用虚拟主机或其他一些以后扩展的功能。 指示: virtual 打开虚拟FTP服务器的支持。是虚拟服务器的IP地址。第二个参数指定如root目录,bannner文件,log文件等的路径。 指示:virtual 设置在greeting消息中显示的主机名字或电子邮件。 指示:virtual allow . virtual deny . 一般真实和guest用户不允许登陆进入虚拟主机,该两个指示用来重新对允许和拒绝访问的虚拟主机的用户进行细化定义。 指示:virtual private 通常,拒绝匿名用户登陆进入虚拟主机。 指示: defaultserver deny . defaultserver allow . 对允许访问缺省(非虚拟)FTP服务器的用户进行定义。 指示:defaultserver private 拒绝匿名用户访问缺省FTP服务器。 指示: deny ip地址/域名 说明文件 设定限制哪个IP地址或域名的用户不允许登录到服务器。 举例说明: deny 201.101.15* *.hacker,com /tmp/message/deny.msg 限制IP地址为201.101.15*及域名为*.hacker,com的机器不允许登录服务器 1.4.2 /etc/ftpusers和/etc/ftphosts的设置 /etc/ftpusers是用来设定系统上的某些用户不允许使用FTP传送文件,/etc/ftphosts是用来设定某些主机不允许连接本FTP服务器的。这样做的目的都是为了安全考虑。 /etc/ftpusers使用的范例如下: root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody 限制某些用户登入FTP服务器是出于系统安全的原因,例如要避免超级用户登入系统。并且禁止某些和一些命令名相同的用户进入FTP服务器。 /etc/ftphosts的示例如下: # Example host access file # # Everything after a # is treated as comment, # empty lines are ignored #allow . # Only allow host(s) matching to log in as . #deny . # Always deny host(s) matching to log in as . allow ideal *. /8 deny fred *. /24 这里只允许ideal从域名以为后缀的主机及/的主机登录进入FTP服务器;禁止fred从*.和/24登录进入FTP服务器。这里的username若为anonymous或ftp都指匿名用户。 1.4.3 /etc/ftpconversions设置 该文件用来设定当用户下载文件时应该做那些操作,例如压缩、解压缩等。文件内容如下所示: :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP : : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR : : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP : : :.crc:/bin/cksum %s:T_REG:CKSUM : : :.md5:/bin/md5sum %s:T_REG:MD5SUM 文件设置说明: :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS 表示对所有以.Z结尾的文件使用/bin/compress -d -c的方式解压缩。 : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS 表示将传送的文件压缩为.Z格式。 :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP 表示将所有以.gz的文件用/bin/gzip -cd解压缩。 : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP 表示将传送的文件压缩为.gz格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物农药在病虫害综合治理中的作用考核试卷
- 航空器飞行数据记录器分析与应用考核试卷
- 2025年耐磨球段项目合作计划书
- 数字智慧方案5473丨人力资源HR信息化解决方案
- 《化学键的性质》课件
- 2025年高密度聚乙烯土工膜项目建议书
- 中学数学课件:正确运用解题方法与技巧
- 找拼音小游戏课件
- 2019-2025年统计师之初级统计工作实务能力提升试卷A卷附答案
- 2019-2025年初级银行从业资格之初级银行管理考前冲刺模拟试卷B卷含答案
- 2022年同等学力人员申请硕士学位日语水平统一考试真题
- 文学欣赏电子教案(全)完整版课件整套教学课件
- 我的高三成长档案
- DBJ51∕T 153-2020 四川省附着式脚手架安全技术标准
- 游泳池设备操作培训课件
- 城轨道交通人因事故分析及评价研究
- (完整版)羊水栓塞应急预案演练记录
- ZYWL-4000型履带式钻机
- (高清版)建筑防护栏杆技术标准JGJ_T 470-2019
- 脑梗死标准病历、病程记录、出院记录模板
- 50MPa路面抗折混凝土配合比
评论
0/150
提交评论