FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。

FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议。

常见FTP服务器:

        windows:Serv-U FTP Server

        Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。

本文的主角:vsftp。VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

特点:它是一个安全、高速、稳定的FTP服务器。本文从以下几个方面来介绍ftp服务器:

  • 一、学习一个新服务的方法
  • 二、VSFTP服务器的安装配置。
  • 三、VSFTP服务器实战

一、学习一个新服务的方法

1、  此服务器的概述:名字,功能,特点,端口号

2、  安装

3、  配置文件的位置

4、  服务启动关闭脚本,查看端口

5、  此服务的使用方法

6、  修改配置文件,实战举例

7、  排错(从下到上,从内到外)

二、VSFTP服务器的安装配置

本文的服务器架构:

FTP服务端:xiaolyu10   IP:192.168.31.10

FTP客户端:xiaolyu11   IP:192.168.31.11

1. 安装:

yum安装或rpm安装均可。

[root@xiaolyu10 ~]# rpm -qa | grep vsftp
vsftpd-2.2.2-21.el6.x86_64
[root@xiaolyu10 ~]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm

[root@xiaolyu10 ~]# yum install -y vsftp

[root@xiaolyu11 ~]# yum -y install  lftp

2. 配置文件:

[root@xiaolyu10 ~]# ls -l /etc/vsftpd
total 32
-rw-r--r-- 1 root root   13 Mar 16 15:14 chroot_list
-rw------- 1 root root  125 May 11  2016 ftpusers
-rw------- 1 root root  361 May 11  2016 user_list
-rw------- 1 root root 4644 Mar 16 15:13 vsftpd.conf
-rw------- 1 root root 4599 Mar 16 14:12 vsftpd.conf_bak
-rwxr--r-- 1 root root  338 May 11  2016 vsftpd_conf_migrate.sh

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。  黑名单

/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。  白名单

vim  /etc/vsftpd/user_list

# 如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码

#prompt 提示

/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本

/var/ftp/:默认情况下匿名用户的根目录

三、VSFTP服务器实战

实战1:

公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用

户自己的目录。

分析:

允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能

开启,

anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。

备份原配置文件:

[root@xiaolyu10 vsftpd]# cp vsftpd.conf vsftpd.conf_bak

[root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf

允许匿名用户访问

anonymous_enable=YES

允许匿名用户上传文件并可以创建目录

anon_upload_enable=YES

anon_mkdir_write_enable=YES 

启动服务:

[root@xiaolyu10 ~]# service vsftpd restart

[root@xiaolyu10 pub]# chown ftp.ftp /var/ftp/pub/

然后测试,是可以新建文件夹了,但是不能重命名,不能删除!

[root@xiaolyu10 ~]# mkdir /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# chown ftp.ftp /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# ll -d !$
ll -d /var/ftp/xiaolyudata
drwxr-xr-x 2 ftp ftp 4096 Mar 16 14:34 /var/ftp/xiaolyudata
[root@xiaolyu10 ~]#

重启服务:

[root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
[root@xiaolyu10 ~]#

现在匿名上传的文件是禁止删除的。

这样匿名用户的上传就算成功了

注:工作中,匿名用户只是只读访问,写的权限也没有的。

 

补充:

如果想让匿名用户可以重命名或者删除的权限,添加如下一条配置参数:

重启服务:

[root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_other_write_enable
                                                           [FAILED]

根据提示,说明我刚才添加的那一行匿名写权限的参数有问题

[root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf

也就是说参数后面不能有多余的空格。

重新启动就可以对重新命名和删除文件夹了,

不安全,均衡使用这个参数

注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!

[root@xiaolyu10 ~]# service vsftpd restart

实战2:

2:

公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文

件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2

帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将

这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。

 

ftp 和www web服务器相结合。

www web服务器根目录:  /var/www/html

只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。

 

分析:

FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安

全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1

team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限

解决方案:

1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码

[root@xiaolyu10 ~]# useradd -s /sbin/nologin team1
[root@xiaolyu10 ~]# useradd -s /sbin/nologin team2
[root@xiaolyu10 ~]# echo "123456" | passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@xiaolyu10 ~]# echo "123456" | passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置文件并作相应修改

[root@xiaolyu10 vsftpd]# cp vsftpd.conf_bak vsftpd.conf
cp: overwrite `vsftpd.conf'? y
[root@xiaolyu10 vsftpd]# vim vsftpd.conf

#anonymous_enable=YES
anonymous_enable=NO   
禁止匿名用户登录
#
# Uncomment this to allow local users to log in.
local_enable=YES  允许本地用户登录

继续将:

修改为:

local_root=/var/www/html:设置本地用户的根目录为/var/www/html

chroot_list_enable=YES:激chroot 功能

chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

保存退出

3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号

[root@xiaolyu10 vsftpd]# touch /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# ll !$
ll /etc/vsftpd/chroot_list
-rw-r--r-- 1 root root 0 Mar 16 15:13 /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# vim /etc/vsftpd/chroot_list
  #写入以下内容,一行,一个用户名

team1

team2

4)重启vsftpd 服务使配置生效

service vsftpd restart

5)修改本地权限

[root@xiaolyu10 vsftpd]# mkdir -p /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xr-x 2 root root 4096 Mar 16 15:16 /var/www/html/
[root@xiaolyu10 vsftpd]# chmod -R o+w /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xrwx 2 root root 4096 Mar 16 15:16 /var/www/html/

(6).测试:

[root@xiaolyu11 ~]# lftp 192.168.31.10 -uteam1,123456
lftp team1@192.168.31.10:~> ls
drwxr-xr-x    2 500      500          4096 Mar 16 07:24 web
lftp team1@192.168.31.10:~>

搭建ftp服务器实现文件共享的更多相关文章

  1. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  2. (转)Centos搭建FTP服务器

    场景:ftp服务器对于在Linux服务器上进行文件操作太方便,在安装软件时候,大的软件也可以先上传再进行安装! 1 搭建FTP服务器 1.1 检查vsftpd 查看是否已经安装vsftpd rpm - ...

  3. 2-6-搭建FTP服务器实现文件共享

    ---------------------------------------------- 大纲: FTP服务:(文件传输协议---> File Transfer Protocol) 常见FT ...

  4. Python一秒搭建ftp服务器,帮助你在局域网共享文件【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  5. Python一秒搭建ftp服务器,帮助你在局域网共享文件

    "老板 来碗面" "要啥面?" "内牛满面.." 最近项目上的事情弄得人心累,本来是帮着兄弟项目写套入口代码,搞着搞着就被拉着入坑了.搞开发 ...

  6. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)

    自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...

  7. 超简单——自己搭建ftp服务器

    自己搭建ftp服务器 之所以没选择serv-u,一是因为收费,虽说网上有破解版,但是使用过程中发现破解版很不稳定,经常异常死掉,随后改选用免费的filezilla. 1软件获取 从百度搜索 FileZ ...

  8. Linux 搭建FTP服务器

    介绍 本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置. 知识点 在linux中使用的FTP是vsftp FTP可以有三种登入方式分别是: 匿名登录方式:不需要用户 ...

  9. RedHat6.2搭建FTP服务器

    我的环境: A:Red Hat Enterprise 6.2 IP:192.168.16.12 此机作测试端 B:Red Hat Enterprise 6.2 IP:192.168.16.13 此机做 ...

随机推荐

  1. 使用OpenFiler来模拟存储配置RAC中ASM共享盘及多路径(multipath)的测试

    第一章 本篇总览 之前发布了一篇<Oracle_lhr_RAC 12cR1安装>,但是其中的存储并没有使用多路径,而是使用了VMware自身提供的存储.所以,年前最后一件事就是把多路径学习 ...

  2. Spring之循环依赖

    转:http://my.oschina.net/tryUcatchUfinallyU/blog/287936 概述 如何检测循环依赖 循环依赖如何解决 Spring如何解决循环依赖 主要的几个缓存 主 ...

  3. JS中常见排序算法详解

    本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...

  4. libMF阅读记录(一):首先要编译通过

    libMF是林智仁老师开发的一个用于推荐系统的矩阵分解库,下载地址:libMF 测试用的数据集是MovieLen,一个给电影评分的数据集,下载在此:ML 最近在阅读libMF的源代码,并且准备开发其M ...

  5. 软通动力C语言机试题

    #include <stdio.h> int charCount(char *str) { int iCount = 0; int i, j, k=0; char *p = str; ch ...

  6. 获取SQL中某一列的类型及精度

    SELECT @type=t.name, @prec=c.prec FROM sysobjects o        JOIN syscolumns c on o.id=c.id        JOI ...

  7. uml视频系列(二)——uml的概述

    在与uml进行了第一次的接触后,就被uml的博学多才给迷住了,uml居然可以做这么多的东西.才思敏捷的uml是设计软件的好帮手. 你还在为自己的类图不会设计而感到无助吗?你还在为你的对象不好确定而感到 ...

  8. iOS程序生命周期 AppDelegate

    iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受 ...

  9. ubuntu文件目录详细介绍

    /bin 二进制可执行命令 /dev 设备文件(硬盘/光驱等) /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录,下面会有以登录用户名作为文件夹名的各文件 ...

  10. fetch使用的常见问题及解决办法

    首先声明一下,本文不是要讲解fetch的具体用法,不清楚的可以参考MDN fetch教程. 引言 说道fetch就不得不提XMLHttpRequest了,XHR在发送web请求时需要开发者配置相关请求 ...