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. Python 中的变量还能这样理解(白话)

    一.案例分析 1.思考 计算软件测试大佬柠檬小姐姐,每月能存多少钱 # 计算软件测试大佬柠檬小姐姐,每月能存多少钱 # 坐标:深圳 # 2018年1月份 # 房租水电 4000元 # 伙食费 1000 ...

  2. python模糊匹配之fuzzywuzzy

    fuzzywyzzy 是python下一个模糊匹配的模块.首先要安装fuzzywuzzy 示例: from fuzzywuzzy import fuzz from fuzzywuzzy import ...

  3. Codeforces Round #364 (Div. 2),只有A与B

    A. Cards time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  4. Spring boot data JPA数据库映射关系 : @OneToOne,@OneToMany,@ManyToMany

    问题描述 在利用Spring boot data JPA进行表设计的时候,表对象之间经常存在各种映射关系,如何正确将理解的映射关系转化为代码中的映射关系是关键之处. 解决办法 概念理解 举例:在公司的 ...

  5. 选学霸(codevs 3372)

    题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议.所以老师想请你帮他求出他该选多少学霸,才能既不让同 ...

  6. 特种部队(codevs 1427)

    题目描述 Description 某特种部队接到一个任务,需要潜入一个仓库.该部队士兵分为两路,第一路士兵已经在正面牵制住了敌人,第二路士兵正在悄悄地从后方秘密潜入敌人的仓库.当他们到达仓库时候,发现 ...

  7. PKCS填充方式

    1)RSA_PKCS1_PADDING 填充模式,最常用的模式要求: 输入 必须 比 RSA 钥模长(modulus) 短至少11个字节, 也就是 RSA_size(rsa) – 11.如果输入的明文 ...

  8. 类(Class)

    类 · 目的 面向对象的最主要目的是提高程序的重复使用性. · 包括 属性(attribute).方法(method) · 示例 class Bird(object): have_feather = ...

  9. Rikka with Phi 线段树

    Chosen Problem Solving and Program design as an optional course, you are required to solve all kinds ...

  10. Pagodas 等差数列

    nn pagodas were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, ...