【Linux全面学习】13.使用vsftp在不同系统间共享文件

标签: Linux vsftpd Selinux setsebool iptables
1622人阅读 评论(2) 收藏 举报
分类:
在Linux和其它机器之间共享文件

Linux与Windows系统之间互换文件,之前有一个叫做Samba的服务器,搭建此服务器可以实现Linux和Windows文件的互传。但是仅仅局限于Linux和Win在同一个局域网且允许共享文件的情况下。
在工作环境中,Windows在局域网中,可是Linux可能在公网上,在电信机房里,这么做是不能的。
在Windows上搭建一个FTPServer,让Linux去下载这个也是不行的。因为Windows的IP地址可能是局域网的,而Linux是公网IP,所以无法对接。

方法只有一种,是在Linux上搭建FTPServer,然后通过Windows读取上传数据。

我们自己下载的各个版本的Linux是默认安装有ftp服务的,怎么找到其中的ftpServer呢?怎么启动起来,让其对外提供服务呢?

我使用的系统版本为CentOS,首先查看一下本机是否安装有ftp服务:

我们目前的系统是没有ftp服务的,我们需要安装一下。

1.首先使用yum安装vsftpd ftp


出现Complete之后就安装完成了。


2.然后查看配置文件所在路径

查看vsftpd.conf配置文件信息:
配置文件的内容如下
anonymous_enable=NO //设定不允许匿名访问

local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问

chroot_list_enable=YES //使用户不能离开主目录

chroot_list_file=/etc/vsftpd/chroot_list ascii_upload_enable=YES

ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能

pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 //已下三个请在配置文件中手动添加

guest_enable=YES //设定启用虚拟用户功能

guest_username=ftp //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了

user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名

3.然后备份vsftpd原有配置文件


4.创建密码明文文件


5.根据明文创建密码DB文件


查看密码数据文件


6.编辑认证文件/etc/pam.d/vsftpd

把注释去掉,然后加上已下几条
注:db=/etc/vsftpd/vftpuser 中的vftpuser是你生成的虚拟用户的db文件

查看系统版本号:getconf LONG_BIT

系统为32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

系统为64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
图13.11.jpg

7.创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/jack  //文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效


设置用户配置文件内容
local_root=/var/www/html  //虚拟用户根目录,根据实际情况修改  该目录必须要有读写权限 chmod -R 777 目录
write_enable=YES  //可写
anon_umask=022 //掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES


8.设置Selinux
setsebool -P ftp_home_dir=1   //设置ftp可以使用home目录
setsebool -P allow_ftpd_full_access=1   //设置ftp用户可以有所有权限


9.启动vsftpd服务
service vsftpd start

这里我使用的是虚拟机,想要windows成功与Linux虚拟机进行ftp通信,就要首先要确保我们的两个虚拟网卡是联通状态:


当然,你的Linux虚拟机如果网络连接图标是断开的,则需要设置网络配置:

连接状态

断开状态无连接

正在连接

Linux虚拟机如何链接网络,参看我的这篇文章:《虚拟机VMware中Linux联网问题》

查看Linux系统的ip地址

我们的虚拟机的ip要设置成和我们三个网络适配器的ip的任意一个网段一样,就可以让我们的windows和Linux链接了。
可以看到我们的ip现在是192.168.248.129,而我windows上的三个网络适配器的ip分别是192.168.57.1、192.168.248.1和172.18.0.4。可以看到192.168.248.129和192.168.248.1是在一个网段的,所以我们的windows和Linux可以做通信。
我们在windows上ping一下,发现确实是联通的:


在windows上使用“ftp xxx.xxx.xxx.xxx”来链接ftp服务,链接不成功和成功的情况:



如果没有链接上ftp服务,要检查两点,一个是Linux上的ftp服务是否启动,Linux的防火墙是否关闭。
关闭Linux放火墙的指令为:
1) 临时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

2) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off

我们登陆进来之后,就可以使用ls等指令查看文件了


在我们的windows机器上,安装FileZilla,连接至服务器,然后也可以进行文件传输:


设置ftp服务开机自启动指令:
chkconfig --level 3(当前启动级别) vsftpd on
其中chkconfig这个指令是负责设置程序和服务的开机启动级别的,我们在控制台输入这个指令,它会给我们列出所有可以设置的程序或服务:

其中就有我们的vsftpd服务,我们也可以使用管道指令直接搜到它:


然后我们可以发现,每个服务都有5个选项,就是说在某个启动级别上是打开还是关闭的。
我们的vsftp的五个选项是off关闭的,而我们目前机器的启动级别是3,所以我们默认当启动级别为3的时候开启vsftpd服务。
chkconfig --level 3 vsftpd on
vsftpd全部级别自启动的指令为
chkconfig vsftpd on

如果不知道目前机器的启动级别,可以输入who -r来查看。

转载请注明出处:http://blog.csdn.net/acmman/article/details/52079967

查看评论

vsftp实例【用于文件的存储和共享】

文章来源:http://yuanbin.blog.51cto.com/363003/108359/ 文中有不对或者有不清楚的地方,请大家告诉我,谢谢!   vsftp实例...
  • buster2014
  • buster2014
  • 2015-07-06 16:43:04
  • 1209

使用vsftpd服务传输文件

1.文件传输协议       文件传输协议(FTP,file transfer protocol),即能够让用户在互联网上上传文件,下载文件的文件协议。       ftp协议占用两个端口号: ...
  • u014034934
  • u014034934
  • 2017-03-22 13:04:07
  • 723

vsftp 实现从windows 到 linux 的共享

想把windows下的东西共享到linux中有几种办法,这儿通过在linux中安装vsftp 实现。 步骤:   1、自动挂载CD,安装vsftp:(配置文件在/etc/vsftpd/vsft...
  • weiruoao
  • weiruoao
  • 2012-12-14 16:20:41
  • 2199

VSFTP服务

概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP(File Transfer Pr...
  • qq_25663723
  • qq_25663723
  • 2016-11-23 17:52:28
  • 2009

VSFTP linux

说明: 如果不做说明,一般安装命令均使用ROOT权限,用 # 表示 特别说明:无 以下文章介绍Liunx 环境下vsftpd的三种实现方法 一、前言Vsftp(Very Secure FTP)是一种在...
  • zwhfyy
  • zwhfyy
  • 2008-08-01 15:59:00
  • 1323

mac多账户文件共享

问题由来: LP在我的mac电脑上下载资料,但由于她没有文件管理的概念,导致她的文档跟我的杂糅在一起,于是给她建了账号,但有时我们之间需要 共享文件,同时她的密码我是不知道的。 解决方案: 1,创建账...
  • black_zero
  • black_zero
  • 2015-09-03 12:05:23
  • 3270

vsftp为不同用户设置不同的ftp的根目录

需求要求ftp登录后的根目录是/var/test/,但是又不能影响其他用户的登录路径,因为有些程序是直接在根目录进行操作的,而没有目录切换的过程。操作过程新建用户useradd test1 usera...
  • bruce_6
  • bruce_6
  • 2017-09-22 16:21:10
  • 514

使用SecureCRT的SFTP命令行在WINDOWS与LINUX之间传输文件

背景:   有一台主机,安装了windows7,在其安装了virtualbox,然后安装了ubuntu虚拟机。在windows7上安装SecureCRT来ssh连接ubuntu虚拟机。一般在wind...
  • u014726937
  • u014726937
  • 2016-10-09 17:48:39
  • 4480

vsftp配置大全

vsftp配置大全---超完整版  以下文章介绍Liunx 环境下vsftpd的三种实现方法  ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.ta...
  • panzan6734
  • panzan6734
  • 2007-01-03 22:37:00
  • 2181

iOS, 在应用之间共享文档。

在iOS开发中,在很多情况下我们需要完成应用之间的文档共享。然而,iOS为应用提供的是一个运行沙箱,一个应用程序无法直接和另一个应用程序通讯,所以应用之间如果要共享文档的话需要通过一些系统提供的应用交...
  • keyboardOTA
  • keyboardOTA
  • 2013-05-20 16:05:05
  • 8150
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 157万+
    积分: 2万+
    排名: 362
    博主信息
    个人信息

    就职: 聚项信息科技有限公司
    职位:中级Java开发工程师
    负责:上汽系统开发与维护
    院校:河南理工大学
    专业:软件工程12级
    邮箱:jackZhuCoder@126.com
    Q Q :10101000101001010111
    1101111010


    我的书籍


    Spring MVC+MyBatis
    开发从入门到项目实战

    书  号:978-7-121-33390-3

    出版日期:2018-01-29

    书籍特色

    · 经验多:百万访问量博主倾囊相授,带你走进Web开发的方方面面。
    · 零基础:从简单的样例做起,逐渐深入技术核心。
    · 内容全:涵盖Spring MVC与MyBatis的33个技巧,56个实例。
    · 重实战:与真实项目案例相结合,深入实战开发的5层架构。
    博客专栏
    最新评论