Linux&&ftp文件传输服务

  • FTP文件传输服务
    • vsftpd服务基础
      • FTP服务概述
        • FTP连接及传输模式是什么样的?
        • FTP服务的数据连接是被动模式建立的情况下,如何进行防火墙配置?
        • FTP服务的传输模式有哪几种?各是什么样的?
        • FTP服务的用户有哪几种类型?
        • 常见的FTP服务器程序有哪些?
        • 常见的FTP客户端程序有哪些?
        • 启动软件服务时,为什么许多软件服务名后面有一个d?如httpd,vsftpd,dhcpd等。
      • vsftpd的配置文件
        • centOS之FTP搭建步骤
        • 客户端如何访问FTP服务?
    • 基于系统用户的FTP服务
      • 匿名访问的FTP服务
        • 准备匿名FTP访问的目录
        • 开放匿名用户配置并启动vsftpd服务
        • 测试匿名FTP服务器
      • 用户验证的FTP服务
        • 准备基本的本地用户验证
        • 使用user_list用户列表文件
      • vsftpd服务的其他常用配置
        • FTP使用示例
    • 基于虚拟用户的FTP服务
      • 建立虚拟用户的账号数据库
        • 基于虚拟用户的FTP服务实现步骤
      • 为vsftpd服务添加虚拟用户支持
        • 如何为不同的虚拟用户实现不同的文件配置?
        • 如何实现不同虚拟用户的根目录各不相同?
        • 客户端命令行登录ftp服务器后如何下载文件?

FTP文件传输服务

vsftpd服务基础

FTP服务概述

ftp是文件传输协议,仅限于上传、下载文件,不支持创建文件。

FTP连接及传输模式是什么样的?

  • 控制连接 : 使用TCP协议的21端口,用于发送FTP命令信息
  • 数据连接 : 使用TCP协议的20端口,用于客户端与服务之间上传、下载数据。

数据连接的建立有以下两种建立模式:
主动模式 : 服务端从20端口主动向客户端发起连接
被动模式 : 服务端在指定范围内的某个端口被动等待客户端连接。
注:数据连接的使用端口在主动模式下建立时,是TCP的20端口;在被动模式下建立时,是TCP的随机端口号。

FTP服务的数据连接是被动模式建立的情况下,如何进行防火墙配置?

FTP服务的传输模式有哪几种?各是什么样的?

文本模式
ASCII模式,以文本序列传输数据
二进制模式
Binary模式,以二进制序列传输数据

文本模式和二进制模式在数据传输过程中自动协商、切换。

FTP服务的用户有哪几种类型?

  • 匿名用户 : anonymous 或 ftp。无法指明用户具体详细信息的用户。
  • 本地用户 : 将账号名称、密码等信息保存在服务器端的passwd、shadow文件中的用户。
  • 虚拟用户: 使用独立的账号、密码数据文件的用户

常见的FTP服务器程序有哪些?

  • IIS、Serv-U、wu-ftpd、Proftpd、vsftpd
  • IIS : windows系统中自带的服务.
  • Serv-U : 运行在windows系统环境中常见的ftp服务。

常见的FTP客户端程序有哪些?

  • ftp命令
  • cuteFTP,flashFXP,leapFTP,Filezilla
  • gftp,kuftp

启动软件服务时,为什么许多软件服务名后面有一个d?如httpd,vsftpd,dhcpd等。

d : 是Daemon的缩写,指守护进程。

守护进程 : 系统启动时,不需要用户登录即可运行的进程被称为守护进程。在后台运行的进程。

vsftpd的配置文件

centOS之FTP搭建步骤

#固化ip、关闭防火墙
#rpm安装vsftpd服务
rpm  -ivh  vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
#配置vsftpd配置文件
vim  /etc/vsftpd/vsftpd.conf#匿名用户允许访问anonymous_enable=YES#匿名用户上传允许anon_upload_enable=YES#匿名用户创建写入允许anon_mkdir_write_enable=YES
#重启服务生效
service  vsftpd  start
#查看匿名用户默认访问的目录
ls  /var/ftp/pub

/etc/vsftpd/ftpusers : 黑名单,禁止使用ftp服务的用户
/etc/vsftpd/user_list : 黑白名单,可以控制名单内用户自由的切换禁止、允许访问ftp的状态。
/etc/rc.d/init.d/vsftpd : 开机启动控制脚本
/etc/vsftpd/vsftpd.conf : ftp主配置文件
当白名单user_list功能启用时,仅在白名单user_list中出现的用户,才可访问ftp服务。
当白名单user_list功能未启用时,只要用户不在黑名单ftpusers 中,即可访问ftp服务。

022 : 指的是644权限掩码
对于ftp来说,其对文件不具备执行权限,所以默认是666。
anon_other_write_enable=YES : 指的是文件和目录的重命名、删除权限。

local_root=/var/ftp : 该功能可以设置普通用户在登录时看到目标目录,而非仅看到用户宿主目录。
chroot_local_user=YES : 指用户只能看到主目录。类似虚根目录的功能。

客户端如何访问FTP服务?

  • 客户端打开文件夹,在地址栏访问“ftp://192.168.1.100”即可。
  • 或 ftp:dfq@//192.168.1.100 : dfq是用户名。
  • 命令行模式下,执行“ftp 192.168.1.100”命令即可。
  • 客户端安装客户端软件输入FTP服务器地址、用户名、密码即可连接。

基于系统用户的FTP服务

匿名访问的FTP服务

准备匿名FTP访问的目录

默认支持匿名用户访问

开放匿名用户配置并启动vsftpd服务

测试匿名FTP服务器

用户验证的FTP服务

准备基本的本地用户验证


userlist_enable=YES : 启动黑白名单功能
userlist_deny=NO : 仅令黑白名单的白名单功能生效

使用user_list用户列表文件

vsftpd服务的其他常用配置

FTP使用示例

需求:
操作步骤:

#安装FTP软件包
#创建目标目录,意在将/home作为用户登录的根目录
mkdir  /home/caiwu
mkdir  /home/yewu
mkdir  /home/pub
#创建财务组,业务组
groupadd  caiwu
groupadd  yewu
#新建用户账号
useradd  -g  caiwu  cw-jl
useradd  -g  caiwu  cw1
useradd  -g  yewu  yw-jl
useradd  -g  yewu  yw1
#更改财务组目录权限
chown  cw-jl:caiwu  /home/caiwu
chmod  750  /home/caiwu
#更改业务组目录权限
chown  yw-jl:yewu  /home/yewu
chmod  750  /home/yewu
#更改共享组权限
chmod  o+wt  /home/pub
#配置vsftpd服务
vim  /etc/vsftpd/vsftpd.conf#禁止匿名用户登录访问anonymous_enable=NO#限制用户登录后的根目录local_root=/homechroot_local_user=YES
#重启服务生效
service  vsftpd  restart

基于虚拟用户的FTP服务

建立虚拟用户的账号数据库

虚拟用户:每个用户的 权限状态,访问位置均可独立设置。管理灵活。
虚拟用户仅能在FTP服务中使用。身份单一。
每个虚拟用户均有独立的配置文件,便于权限设置。

基于虚拟用户的FTP服务实现步骤

#创建账号数据
##建立虚拟FTP用户的账号数据库文件
### 建立虚拟用户的账号名、密码列表,注意用户前面不能留有空格!
vim  /etc/vsftpd/vusers.listdfq1    #奇数行为账号名123456  #偶数行为上一行中账号的密码dfq2    #奇数行为账号名123456  #偶数行为上一行中账号的密码
###安装db4-utils软件包,借助db_load转换工具,将列表转化为Berkeley DB格式的数据文件
cd  /etc/vsftpd/
db_load  -T  -t  hash  -f  vusers.list  vusers.db
#查看vusers.db文件类型
file  vusers.db
#更新虚拟用户文件权限,更改为只允许root用户读写。
chmod  600  /etc/vsftpd/vusers.*
##创建FTP根目录及虚拟用户映射的系统用户
###虚拟用户仅限于ftp环境中登录时验证使用;而在系统中对目录、文件、资源进行访问时,需要将虚拟用户切换或映射成系统用户使用。
####“/var/ftproot” :宿主目录,“virtual” : 虚拟用户名,“/sbin/nologin” : 不能从tty终端登录。
useradd  -d  /var/ftproot  -s  /sbin/nologin  virtual
chmod  755  /var/ftproot
##建立支持虚拟用户的PAM认证文件,"/etc/vsftpd/vusers"对应上面创建的vusers.db文件。
####“/etc/pam.d/vsftpd”代表本地用户如何验证的。
vim  /etc/pam.d/vsftpd.vu#%PAM-1.0auth     required  pam_userdb.so  db=/etc/vsftpd/vusersaccount  required  pam_userdb.so  db=/etc/vsftpd/vusers
##在vsftpd.conf文件中添加支持配置
vim  /etc/vsftpd/vsftpd.confanonymous_enable=nolocal_enable=YESwrite_enable=YESanon_umask=022guest_enable=YESguest_username=virtualpam_service_name=vsftpd.vu
##重启服务生效
service  vsftpd  restart

pam : 认证机制.
虚拟用户一旦启动,本地(系统)用户将不能使用,因为本地用户验证是通过pam验证的,本地用户文件与虚拟用户文件是同等的,本地用户与虚拟用户不能同时用于“pam_service_name”。会冲突。

##客户端使用虚拟用户登录vsftpd服务
#打开文件夹,访问“ftp://192.168.10.11”

为vsftpd服务添加虚拟用户支持

如何为不同的虚拟用户实现不同的文件配置?

#在vsftpd.conf文件中添加用户配置目录支持
vim  /etc/vsftpd/vsftpd.conf#添加不同用户独立配置目录的支持user_config_dir=/etc/vsftpd/vusers_dirmkdir  /etc/vsftpd/vusers_dir
cd  /etc/vsftpd/vusers_dir
#为虚拟用户dfq1创建独立配置文件
vim  dfq1anonymous_enable=YESanon_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESanon_max_rate=0#local_root=/var/ftp1
vim  dfq2anonymous_enable=YES#匿名或虚拟用户上传到服务器的文件,文件权限是怎样的?anon_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESanon_max_rate=0#local_root=/var/ftp2

"anon_umask=022"可以确保不同权限的用户创建的文件,其他用户可读。

如何实现不同虚拟用户的根目录各不相同?

mkdir  /home/caiwu
mkdir  /home/yewu
chown  virtual.virtual  /home/caiwu
chown  virtual.virtual  /home/yewu
chmod  755  /home/caiwu
chmod  755  /home/yewu
cd  /etc/vsftpd
vim vusers.listcw-jl123456cw1123456
db_load  -T  -t  hash  -f  vusers.list  vusers.db
cd  /etc/vsftpd/vusers_dir
vim  cw-jl#此时用户cw-jl登录时,访问的目录是/home/caiwu,并且对该目录具备写权限local_root=/home/caiwuanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

客户端命令行登录ftp服务器后如何下载文件?

ftp  192.168.10.11
#查看客户端的当前路径
ftp>!pwd
#查看服务器端的当前路径
ftp>pwd
#切换客户端的当前路径到/tmp下.“l”代表local
ftp>lcd  /tmp
#从ftp服务器端下载文件ddd到客户端的当前路径下
ftp>get  ddd
#将客户端当前路径下的文件aaa上传到ftp服务器目录下
ftp> put  aaa
#使用mget从服务器下载多个文件到客户端当前路径,使用mput上传客户端当前路径下的多个文件到服务器端。
ftp>mget  ddd  aaa
#退出连接
ftp>by

Linuxftp服务相关推荐

  1. Qt开发遇到的坑---kalrry

    Qt开发遇到的坑---kalrry 一.依赖引入坑 二.Qt在Debug时报错 1.编译器是 **MSVC** 还是 **MinGW** 2.编译器 32位 还是 64位 三.Qt+MSVC编译后中文 ...

  2. 06-JAVA面试核心知识点整理(时间较多的同学全面复习)

    JVM (1) 基本概念: JVM是可运行Java代码的假想计算机 ,包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收,堆 和 一个存储方法域.JVM 是运行在操作系统之上的,它与硬件没有直接的 ...

  3. iPhone应用程序编程指南

    介绍 请注意:本文档之前命名为iPhone OS编程指南. iPhone SDK为创建iPhone的本地应用程序提供必需的工具和资源.在用户的Home屏幕上,iPhone的本地应用程序表示为图标.它们 ...

  4. LINUXftp文件共享服务

    目录 简介 模式 协议 连接方式 FTP服务配置 测试 设置本地用户访问禁止匿名用户登陆 测试 使用user_list 用户列表文件 测试​编辑 简介 FTP是文本传输协议用于internet上控制文 ...

  5. linux的ftp服务 实验报告,Linux-FTP服务器配置实验报告.docx

    实验六?Linux?系统环境下的?FTP?服务 器安装与配置 一.实验目的 (1)掌握?Vsftpd?服务器的配置安装方法. (2)熟悉?FTP?的使用. (3)掌握?FTP?服务器的启动与停止操作. ...

  6. LinuxFTP文件传输服务和DNS域名解析服务

    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易, ...

  7. 【Linux】26_文件服务FTP Server

    目录 FTP简介 FTP Server 默认配置 FTP Clinet(客户机) FTP启动上传功能 FTP简介 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP ...

  8. linux 文件服务,Linux操作系统之文件服务(ftp、nfs)

    一.FTP server 1.简介 名词解释:FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中应用层的协议之一. logo: 作用: 提供文件共享服务, ...

  9. ubuntu开启客户端nfs服务_linux系统文件服务

    ## FTP Server FTP是TCP/IP协议组中应用层的协议之一 给用户提供文件共享服务,互联网上的媒体资源和软件资源.绝大部分都是通过FTP服务器传递 控制端口 command 21 /tc ...

最新文章

  1. 怎样学会单片机?先学什么,怎么入门?
  2. SQL Server 判断数据库是否存在,表是否存在
  3. 每日一皮:不同的视角看待问题...
  4. springboot项目启动后无法访问index.html首页
  5. canvas的getImageData和putImageDataAPI
  6. 相机标定方法机理总结与公式推导(Camera calibration)
  7. 配置eclipse编写html/js/css/jsp/java时自动提示
  8. 数学类网站、代码(Matlab Python R)、编程站点
  9. [POJ2195]Going Home(带权最大匹配,KM,最小费用流)
  10. 推荐:网站SEO内链详细操作指南
  11. 大地测量学基础(复习)第一部分
  12. ps入门第10天_ps色彩平衡ps色相饱和度
  13. java SE复习笔记54
  14. 两百行代码实现王校长大战鸡你太美
  15. matlab syms类型,matlab中syms类型的转换
  16. 基于VS+Opencv2.4.10的微信跳一跳辅助工具
  17. 【音视频工具】前端屏幕录制工具 + 录制<video>标签内容
  18. DC/DC电源输入输出滤波电容摆放位置
  19. 动态规划(DP)01
  20. 洛谷 P1423 小玉在游泳 AC

热门文章

  1. (二)卷积神经网络之——AlexNet
  2. Vue3 企业级优雅实战 - 组件库框架 - 4 组件库的 CSS 架构
  3. 分布式事务常见解决方案
  4. 弹性盒子(弹性布局)
  5. 机器学习之分类器性能指标之ROC曲线、AUC值
  6. 【html】基础极速笔记
  7. 宽带计费认证系统的PPPoE认证技术
  8. 【AIGC】大模型协作系统 HuggingGPT 深度解析
  9. 【学生管理系统】用户登录三种验证方式—图片验证、短信验证、邮件验证
  10. java实现创蓝短信