简介

(File Transfer Protocol文件传输协议)应用层的文件共享服务是互联网控制文件实现双向传输,同样ftp也是一个应用程序,不同系统对应的应用程序也不同,但是所遵循的是同一个协议

用户分类:

ftpReal帐户(本地用户) 用户 密码
这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

ftpGuest用户(虚拟用户
在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd HYPERLINK 软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

ftpAnonymous(匿名用户)
这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。

使用方式:

端口:
1. TCP21 命令
2. TCP20 数据

传输方式:
FTP的传输有两种方式:ASCII、二进制。
ASCII传输方式
假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者 HYPERLINK 压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。

二进制传输模式
在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送 HYPERLINK 可执行文件到Windows系统,在对方系统上,此文件不能执行。
如在ASCII方式下传输 HYPERLINK 二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

模式:

port(主动模式),服务器使用20端口连接客户端


1.客户端开启高位随机端口和服务端建立一个命令连接,发起一个port主动请求指令信息

2.服务端响应主动请求指令的结果

3.服务端主动开启20号数据端口,将这个数据文件主动响应给客户端主机

4.客户端主机收到信息后发起一个确认信息最后断开连接

pasv(被动模式)

1.客户端开启高位随机端口和服务端建立一个命令连接,发起一个pasv被动请求指令信息

2.服务端响应主动请求指令的结果

3.客户端开启高位的数据端口向服务端建立数据连接请求

4.服务端根据客户端的请求以被动方式将数据响应给客户端主机

优缺点:

主动模式对ftp对服务器管理有利,是由FTP服务器主动与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞。而被动模式对客户端管理有效,它是企图与服务端的随机端口建立连接但是这个端口很可能又会被服务端的防火墙所拒绝。一般做安全措施我们是在被动模式下做,由于主动模式是打开一个端口给客户端传送数据,我们做安全措施都是基于端口来做所以不太好做,一般也不建议去做。但是被动模式也是在不停地放端口,所以慢慢的ftp慢慢的在淘汰。

ftp用户
匿名用户 任何人同一个ID身份登录(不需要用户验证)
虚拟用户 将一个本地用户身份虚拟为多个身份(通过虚拟用户身份验证登录)
系统用户 本地用户(本地用户身份验证登录)

案例:在主机配置FTP服务
要求:在openlab公司教学部建立一个文件系统服务器。
实现所有用户基于虚拟用户身份登录到该部门的ftp文件系统服务器,访问的文件系统根目录为/home/teacher目录
(虚拟用户分别为:lucy,lack,david,dylan密码是openlab)

首先安装ftp服务
[root@localhost ~]# yum install vsftpd.x86_64

更改配置文件

anonymous_enable=NO //关闭匿名用户
allow_writeable_chroot=YES //通过chroot对用户宿主目录实现禁锢
chroot_local_user=YES //指定本地用户不能切换
guest_enable=YES  //虚拟用户模式开启
guest_username=teacher //tearcher为系统用户(真实本地用户)
virtual_use_local_privs=YES //本地虚拟用户特权开启
pam_service_name=vuser //设置PAM认证模块使用名称预设为vuser

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


创建用户teacher
[root@localhost ~]# useradd teacher

创建虚拟用户文件
[root@localhost ~]# vim /etc/vsftpd/vfile
奇数行为虚拟用户,偶数行为密码

将虚拟用户文件转换成用户数据库文件
[root@localhost vsftpd]# db_load -T -t hash -f vfile vfile.db

修改PAM认证方式,编辑认证配置文件

[root@localhost vsftpd]# vim /etc/pam.d/vuser

重启服务
[root@localhost vsftpd]# systemctl restart vsftpd

测试



Linux搭建FTP服务使用案例相关推荐

  1. linux搭建ftp服务并创建目录,linux搭建ftp服务器

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一.前述 企业中linux搭建ftp服务器还是很实用的,所以本文针对centoos7和centoos6搭建服务器教程做个 ...

  2. 腾讯云Linux云服务器如何搭建FTP服务?

    Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器.本文以 CentOS 7.6 64位操作系统的腾讯云服务器(CVM)为例,使用 vsft ...

  3. Linux中如何搭建FTP服务

    文章目录 如何搭建FTP服务,并设置匿名用户访问FTP服务的最大权限 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录) 修改匿名用户,本地用户登录的默认根 ...

  4. java ftp返回到根目录,Linux下搭建ftp服务,更改根目录到大存储到位置

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

  5. Linux centosVMware xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    一.xshell使用xftp传输文件 Ctrl+Alt+F 弹出 下载进入 填写任意名字,自己邮箱 进入邮箱点击网址就自动下载了 然后安装 二.使用pure-ftpd搭建ftp服务 yum insta ...

  6. Xshell使用xftp传输文件,使用pure-ftpd搭建ftp服务

    笔记内容: 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 笔记日期:2017-11-03 15.4 xshell使用xftp传输文件 在官网下载xftp, ...

  7. xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    exportfs命令 exportfs命令可以添加共享目录不用重启nfs服务, 测试:首先更改服务器端的nfs配置文件 [root@100xuni1 ~]# vim /etc/exports ##增加 ...

  8. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

  9. xshell使用xftp传输文件和使用pure-ftpd搭建ftp服务

    xshell使用xftp传输文件 首先安装xftp,然后建立会话,步骤和xshell一样,在使用的时候用Ctrl+ALT+f呼出,左边是windows桌面,右面是linux,双击或拖拽都可以实现命令互 ...

最新文章

  1. 创建数据库,指定数据库的字符集和编码顺序
  2. 分析两小段c++代码 关于unsigned运算的坑
  3. Python基础学习3
  4. Javascript 取小数点后面N位
  5. 关于c++预编译符的使用
  6. Java架构师成长之道之浅谈计算机系统架构
  7. 浅谈Lucene中的DocValues
  8. 数学怪兽-法国数学家庞加莱
  9. 21道Python经典面试题,助你offer拿到手软!
  10. 【android studio】解决android studio drawable新建项目时只有一个drawable目录的问题
  11. oracle无法减小列长度,中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义...
  12. python ConfigParser模块 配置文件解析
  13. 中兴机顶盒网关服务器超时,中兴机顶盒错误1302连接EPG服务失败解决方法
  14. npn三种波形失真_RF测试笔记:三阶交调失真概述及测试
  15. ORACLE对字符串去空格处理(trim)
  16. EAN13条形码生成器
  17. 服务器带宽10M能带多少人同时访问之并发数计算
  18. weui 可移动悬浮按钮
  19. 【考研数学】考研数学一的相关课本电子版资源分享
  20. 天干地支(出生年月的转换)

热门文章

  1. svn提交报错Unexpected HTTP status 413 'Request Entity Too Large' on
  2. Android获取QQ名片赞数量,教你如何提高QQ名片赞数量 如何增加QQ赞数量
  3. 安卓大作业-字典App 可以查询汉字 可以玩成语接龙游戏
  4. Java面试题上篇(转)
  5. 微一案做php,微一案:真正的高效率,都是这么炼成的
  6. 通过selenium抓取新浪微博
  7. html如何让文字图片同高,css里图片和文字如何等高
  8. 解决win10通过KMS激活的出现浏览器主页被修改为hao.qquu.com问题
  9. 如何快速把多个excel表合并成一个excel表(不熟悉vba及公式的人)
  10. html根据地点名称查坐标,根据地址查询经纬度Js