11.2  Vsftpd简介

Vsftpd是一种在GPL许可下开放源代码的FTP服务器,用于多种UNIX系统和Linux系统。Vsftpd也称为Very Secure FTP Daemon,它是一种安全、快速、稳定的FTP服务器,能够高效地处理大量的并发连接。

11.2.1  Vsftpd软件包的获取与安装

Vsftpd的主要特点包括:

提供安全的体系结构,根据任务的最低特权需求单独执行每个任务。

支持虚拟IP配置,可以在提供一个IP地址的情况下,在域中用该地址建立多个FTP服务器。

允许配置并使用虚拟用户,从而与系统用户账户分离。

支持TCP封装。

允许配置匿名服务器,用户可以在不需要身份验证的情况下上传和下载文件。

性能稳定,可以处理大量的并发连接。

可以配置为独立的服务器。

Vsftpd服务器支持带宽控制。

Linux 几乎所有的发行版本都内置了Vsftpd服务,Red Hat Enterprise Linux 5 也自带了Vsftpd服务。对于已经安装了 Vsftpd的Red Hat Enterprise Linux 5,可以选择【应用程序】|【添加/删除软件】中的【软件包管理者】选项,查看 Vsftpd服务,如图11.1所示。

也可以在终端执行以下命令,查看系统是否已经安装了Vsftpd软件包:

  1. # rpm -qa|grep Vsftpd

  2. vsftpd-2.0.5-10.el5

如果出现以上结果,表明已安装vsftpd-2.0.5-10.el5.i386.rpm。

Vsftpd软件包的安装方法有两种。

1.手动安装Vsftpd软件包

用户可以在http://vsftpd.beasts.org/上 下载需要的Vsftpd RPM安装包,也可以在Red Hat Enterprise Linux 5的安装盘中找到需要安装的RMP,用 rpm -ivh命令进行安装。安装RMP时需要拥有系统的root权限。以安装vsftpd-2.0.5-10.el5.i386.rpm为例,应使用 以下命令:

  1. # rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm

(点击查看大图)图11.1  查看Vsftpd软件包

2.根据源代码编译安装

在需要更高版本或需要对安装过程进行定制的情况下,可以用vsftpd的源代码进行编译安装。源代码可以从http://vsftp.beasts.org网 站下载,最新的版本是vsftpd-2.0.5.tar.gz。默认的配置中,Vsftpd需要使用nobody用户和/usr/share/empty 目录。在安装Red Hat Enterprise Linux 5时,系统会自动创建nobody用户,和/usr/share/empty目录。可以 通过以下命令测试该用户和目录是否已经存在,如果不存在则创建该用户和目录。

  1. # useradd nobody

  2. # mkdir /usr/share/empty

如果nobody用户已经存在,系统会提示"useradd: 用户nobody已经存在"。如果目录/usr/share/empty目录已经存在,系统会提示"目录已存在"。

如果需要Vsftpd支持匿名服务,应使用以下命令创建ftp用户,并使其具有home目录的权限:

  1. # mkdir /var/ftp

  2. # useradd -d /var/ftp ftp

  3. # chown root.root /var/ftp

  4. # chmod og-w /var/ftp

用户和目录权限设置完成后,可以进行编译安装,使用命令如下:

  1. # tar -zxvf vsftpd-2.0.5.tar.gz

  2. # cd vsftpd-2.0.5

  3. # make

  4. # make install

安装完成后,需要将配置文件复制到/etc目录下:

  1. # cp vsftpd.conf /etc/

然后使用以下命令,允许本地用户登录服务器:

  1. # cp RedHat/vsftpd.pam /etc/pam.d/ftp

最后,编辑配置文件/etc/vsftpd.conf,在最后一行加入listen=YES,并保存。

在命令行输入以下命令即可启动Vsftpd:

  1. # vsftpd &

  2. [1] 3457

&表示Vsftpd在后台运行。可以用以下命令对编译安装的Vsftpd进行检测:

  1. # ftp localhost

  2. Connected to teacher.bit.edu.cn.

  3. 220 (vsFTPd 2.0.5)

  4. 530 Please login with USER and PASS.

  5. 530 Please login with USER and PASS.

  6. KERBEROS_V4 rejected as an authentication type

  7. Name (localhost:root): anonymous

  8. 331 Please specify the password.

  9. Password:

  10. 230 Login successful.

  11. Remote system type is UNIX.

  12. Using binary mode to transfer files.

  13. ftp> ls

  14. 227 Entering Passive Mode (127,0,0,1,71,146)

  15. 150 Here comes the directory listing.

  16. drwxr-xr-x    2 0        0            4096 Jan 17  2007 pub

  17. 226 Directory send OK.

  18. ftp> bye

  19. 221 Goodbye.

下面对以上检测结果做几点说明。

# ftp localhost

表示连接本地服务器。

220 (vsFTPd 2.0.5)

表示Vsftpd2.0.5是已安装的Vsftpd的版本。

Name (localhost:root): anonymous

表示输入用户名,此处为匿名(anonymous)用户。

Password:

表示Password之后应输入密码,但在Linux终端下不显示所输入的密码内容。

230 Login successful

提示登录成功。

ftp> ls

在"ftp>"提示符下,表示正在使用Vsftpd服务,ls命令可查看服务器上的文件。

ftp> bye 221 Goodbye.

表示退出Vsftpd服务器。

安装完成后可以看到,Vsftpd的文件布局结构很简洁,如表11.1所示。

表11.1  Vsftpd文件布局

/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

Vsftpd的主程序

/etc/rc.d/init.d/vsftpd

启动脚本

/etc/pam.d/vsftpd

PAM认证文件

/etc/vsftpd.ftpusers

禁止使用Vsftpd的用户列表文件

/etc/vsftpd.user_list

禁止或允许使用Vsftpd的用户列表文件

/var/ftp

匿名用户主目录

/var/ftp/pub

匿名用户的下载目录

此外,还有一些说明文档和手册文件。Vsftpd的日志文件位于/etc/logrotate.d/vsftpd.log目录下。

Vsftpd软件包的获取与安装的更多相关文章

  1. linux下自动获取并安装软件包 apt-get 的命令介绍

    apt-cache search package    搜索包 apt-cache show package    获取包的相关信息,如说明.大小.版本等 sudo apt-get install p ...

  2. Java 获取APK安装程序的包名

     Java 获取APK安装程序的包名核心的两个类:  ResPackage ApkDecoder  package com.temobi.util; import java.io.File; impo ...

  3. winPcap_4_获取已安装设备的高级信息

    由 pcap_findalldevs_ex() 返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成: 一个地址列表 一个掩码列表 (each of ...

  4. [Q]“获取AutoCAD安装信息时失败...”解决方法

    “获取AutoCAD安装信息时失败...”解决方法:在“setup.exe”上右键,以管理员权限运行即可.

  5. jail brak 获取当前安装app列表

    ios 5 6 7 可以通过解析"/private/var/mobile/Library/Caches/com.app.mobile.installation.plist" 文件获 ...

  6. Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用

    一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了,它的复杂度远远大于纯粹的应用开发.首先必须要考虑的就是集成第三方SDK,支付这块渠道商已经帮你我们做好了,只需要按照文档对 ...

  7. iPhone手机获取uuid 安装测试app

    iPhone手机获取uuid 安装测试app UDID是一种iOS设备的特殊识别码.除序号之外,每台ios装置都另有一组独一无二的号码,我们就称之为识别码( Unique Device Identif ...

  8. c#获取已安装的所有NET版本

    /// <summary> /// 获取已安装的所有NET版本 /// </summary> /// <returns></returns> publi ...

  9. iOS获取已安装的app列表(私有库)+ 通过包名打开应用

    1.获取已安装的app列表 - (void)touss { Class lsawsc = objc_getClass("LSApplicationWorkspace"); NSOb ...

随机推荐

  1. Altium designer中生成gerbera文件

    在Altium designer中生成gerbera文件的方法有很多,不同版本,差异行不太大,正如下边链接地址里博主在10版本下的方法,在6.0版本长也是这样 http://blog.sina.com ...

  2. java中检测-在运行时指定对象是否是特定类的一个实例---关键字 instanceof

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. if(requ ...

  3. 【51NOD1766】树上的最远点对(线段树,LCA,RMQ)

    题意:n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间, 表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c< ...

  4. vimtips阅读记录

    __BEGIN__ *vimtips.txt* For Vim version 8.0. ------------------------------------------------------- ...

  5. Floyd算法——保存路径——输出路径 HDU1385

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1385 参考 http://blog.csdn.net/shuangde800/article/deta ...

  6. 洛谷 P1166 打保龄球

    P1166 打保龄球 题目描述 打保龄球是用一个滚球去打击十个站立的柱,将柱击倒.一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分.一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关, ...

  7. jmeter的Classpath即类或者jar包的搜索路径设置

    对于master-slave模式,插件和依赖都需要放到slave上才能生效,并且需要重启slave使插件生效 查看配置文件:apache-jmeter-3.1/bin/jmeter.propertie ...

  8. C# .NET想要另存一个项目,sln文件丢了怎么办

    如下图所示,我想要另存一个工程,把 V4.4整个的项目另存为V4.5,我可以把解决方案文件(.sln)改名字,但是我没法把文件夹改名字,改了打开sln就说找不到.   很简单的一个思路是反正sln是多 ...

  9. 在Linux(centos)上安装PHP的mongodb扩展 成功试过的

    到http://pecl.php.net/package/mongo下载相应的mongodb客户端,本例为1.2.1# wget http://pecl.php.net/get/mongo-1.2.1 ...

  10. java7新特性之Try-with-resources (TWR)

    java7新特性之Try-with-resources (TWR) This change is easy to explain, but it has proved to have hidden s ...