使用FTP时必须首先登录,在远程主机上获得相应的许可权以后,方可上传或下载档案。也就是说,要想同哪一台计算机传送档案,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送档案。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
基本介绍
- 中文名:匿名FTP
- 外文名:anonymous FTP
- 简介:匿名档案传输协定
- 特性:可通过它连线到远程主机上
- 範围:那些提供了这项服务的主机
基本介绍
anonymous FTP(匿名FTP)
即匿名档案传输协定。用于对远程计算机的连线,这些计算机是作为匿名或客户用户进行连线的,以将公共档案传输到用户的本地计算机。
网际网路中有很大一部分FTP伺服器称为“匿名”FTP伺服器。这类伺服器的目的是向公众提供档案拷贝服务,不要求用户事先在该伺服器进行登记注册,也不用取得FTP伺服器的授权。
匿名档案传输能够使用户与远程主机建立连线并以匿名的身份从远程主机上拷贝档案,而不必是该远程主机的注册用户。用户使用特殊的用户名anonymous,许多系统用户要求用户将E-mail地址作为口令,便可登入“匿名”FTP伺服器,访问远程主机上公开的档案。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的档案,这些档案包含了各种各样的信息、数据和软体。如 red hat、autodesk等公司的匿名站点。
特性
匿名FTP是这样一种机制:用户可通过它连线到远程主机上,并从其下载档案,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。
通过FTP程式连线匿名FTP主机的方式同连线普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字元串。习惯上,用自己的E-mail地址作为口令,使系统维护程式能够记录下来谁在存取这些档案。
範围
值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取,系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载档案,而不允许用户向其上传档案,也就是说,用户可将匿名FTP主机上的所有档案全部拷贝到自己的机器上,但不能将自己机器上的任何一个档案拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传档案,用户也只能将档案上传至某一指定上传目录中。随后,系统管理员会去检查这些档案,他会将这些档案移至另一个公共下载目录中,供其他用户下载。利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的档案,如带病毒的档案。
实质
匿名FTP服务的实质是:提供服务的机构在它的FTP伺服器上建立一个公开账户(一般为anonymous),并赋予该账户访问公共目录的许可权。用户想要登录到这些FTP伺服器时,无需事先申请用户账户,可以用“anonymous”作为用户名,用自己的E-mail地址或姓名作为用户密码,便可登录,获取FTP服务。
优点
匿名FTP服务的优点是:
第一,匿名FTP运用很广,没有什幺指定的要求。所以,每一个人都可以在匿名FTP主机上访问档案。“big deal”是指世界上大量运用的匿名FTP,即上千的匿名主机和无数的档案都可以被免费拷贝。在Internet上,大量信息和大量电脑程式都是可获得的,人们可以利用计算机设备和磁碟空间来获得对自己有用的档案。匿名FTP提供进入最大信息库的通路,并且这个库总是不断壮大,它不关闭,并且无所不包,还可以免费访问。
第二,在Internet上,匿名FTP是软体分发的主要方式。在Internet上保存所有已提供所用标準协定的有用程式。许多程式通过匿名FTP分布,每一个人都可以建立一个Internet主机。
FTP之所有非常重要的最后一个原因是:匿名FTP被用来归档和传播技术信息,从而定义了Internet自己(实现资源共享)。
基本设定
使用匿名FTP,用户无需输入用户名密码即可登录FTP伺服器。vsftpd安装后默认就已经开启了匿名FTP的功能,用户无需进行额外配置即可使用匿名登录FTP伺服器。vsftpd相关选项的默认值如下所示:
anonymous_enable=YES //开启匿名FTP
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
这时候用户可以匿名方式登录FTP伺服器,查看并下载匿名账号主目录下的各级子目录和档案,但不能上传档案或创建目录。登录FTP伺服器,如下所示:
#ftp localhost
Connected to localhost (127.0.0.1)
220 Welcome to Sam's Ftp Server
Name (localhost:root) : anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
列出当前目录下的所有内容,如下所示:
ftp> ls //列出目录下的所有内容
227 Entering Passive Mode (127.0.0.1.183.106)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Oct 14 04:31 data
-rw-r--r-- 1 0 0 31 Oct 14 04:32 files.tar
-rw-r--r-- 1 0 0 26 Oct 14 04:32 hello.log
drwxr-xr-x 2 0 0 4096 Oct 14 04:33 pub
drwxr-xr-x 2 0 0 4096 Oct 14 04:33 src
进入pub目录,如下所示:
ftp> cd pub //进入pub子目录
250 Directory successfully changed.
ftp>ls
227 Entering Passive Mode (127.0.0.1.111.125)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 23 Oct 14 04:33 sql.txt
-rw-r--r-- 1 0 0 20 Oct 14 04:33 sysadm.dmp
226 Directory send OK.
下载sql.txt档案,如下所示:
ftp> get sql //下载sql.txt档案
local: sql.txt remote: sql.txt
227 Entering Passive Mode (127.0.0.1.148.0)
150 Opening BINARY mode data connection for sql.txt (23 bytes).
226 File send OK.
23 byte received in 0.0001 seconds (2.1e+02 Kbytes/s)
上传top.log档案,如下所示。
ftp> put top.log //上传top.log档案失败
local: top.log remote : top.log
227 Entering Passive Mode (127.0.0.1.155.93)
550 Permission denied
创建pub1目录,如下所示:
ftp> mkdir pub1 //上传子目录失败
550 Permission denied.
下面对以上的结果进行说明:
(1)Name( localhost : root ):anonymous :以匿名方式登录FTP伺服器必须使用anonymous作为用户账户。
(2)ftp>ls :与Linux 系统一样,ls命令用于列出FTP中当前目录下的档案和子目录。
(3)ftp>cd pub :进入Pub目录。
(4)ftp>get sql.txt :使用匿名账号下载pub目录下的sql.txt档案。
(5)ftp>put top.log :使用匿名账号上传top.log档案到pub目录,但由于vsftpd的默认配置中不允许匿名账号上传档案,所以操作失败。
(6)ftp>mkdir pub1 :使用匿名账号创建子目录pub1,但由于sftpd的默认配置中不允许匿名账号创建目录,所以操作失败。