一、概述
1.1FTP基本概念
FTP(File Transfer Protocol)是一种用于文件传输的标准协议。FTP服务是一种能够让用户通过FTP协议在本地计算机和远程服务器之间进行文件传输的服务。FTP服务可以允许用户上传或下载文件,也可以进行目录浏览、文件删除、文件重命名等操作。FTP服务是网络操作中常用的一种服务,特别是在需要大量文件传输的场合,如网站建设、文件备份等。
FTP服务通常包括以下功能:
用户认证:在FTP服务中,用户需要提供用户名和密码才能连接到FTP服务器。
文件传输:FTP服务提供从客户端上传、下载文件到服务器的功能。
目录操作:FTP服务允许用户创建、删除目录,以及在目录间切换。
文件权限管理:FTP服务可以管理用户对文件和目录的访问权限。
1.2FTP工作模式
FTP服务有两种工作式工作模式,一种为主动方式,也叫PORT方式,另一种为被动方式,也叫PASV方式。
FTP主动模式
在FTP中,使用两个TCP连接,一个连接为控制连接,用来传输控制命令,另一个连接为数据连接,用来传输上传下载的数据文件。在主动方式中,FTP服务器在端口21上监听TCP连接建立请求,客户端在本地选择一个动态端口x,向FTP服务器的21号端口发起TCP连接建立请求,经过TCP三次握手,在客户端动态端口x与服务器端口21之间建立了控制连接,用来传输命令。如果要进行数据传输,客户端会先选择一个动态端口x+1,用作数据连接,在端口x+1上监听TCP连接请求,然后在控制连接上使用PORT指令告诉服务器,客户端用于数据连接的端口,服务器收到PORT指令后,以端口20向客户端端口x+1发起TCP连接建立请求,经过TCP三次握手,在服务器20号端口与客户端x+1号端口之间建立的数据连接,用作传输据。由此可以看出,数据连接是由服务器主动发起的,因此称为主动方式。
FTP主动模式需要客户端和服务器之间进行多次通信,因此它通常较慢。在大多数情况下,FTP被动模式是更好的选择,因为它不需要客户端和服务器之间的多次通信,因此更快。
FTP被动模式
在FTP被动方式中,控制连接的建立方法与主动方式相同,而数据连接的建立则不同。当需要传输数据时,客户端通过控制连接向服务器发送PASV命令,服务器收到PASV命令后选择一个动态端口y,并通过PORT命令将选择的动态端口y告诉客户端,向客户端使用本地动态端口x+1,向服务器的动态端口y发起TCP连接建立请求,经过TCP三次握手,在客户端端口x+1与服务器端口y之间建立起数据连接,用作传输数据。由此可以看出,数据连接是由客户端主动发起的,而服务器是被动接收连接,因此称为被动方式。
FTP被动模式的优点是可以避免传输数据时被防火墙或网络的NAT路由器所阻挡,从而提供更加可靠的数据传输服务。然而,使用FTP被动模式也有一些注意事项。例如,FTP服务器必须正确地配置被动模式以允许客户端访问,否则客户端会无法建立连接。此外,由于FTP服务器在一个固定的端口上等待客户端的连接,因此可能会存在安全问题。因此,在使用FTP被动模式时,建议谨慎考虑安全问题并采取适当的安全措施。
1.3FTP安装与配置文件
1.4用户访问FTP服务器
匿名用户访问FTP服务器
可以使用匿名登录来访问FTP服务器。这可以通过在FTP客户端中提供用户名“anonymous”和电子邮件地址作为密码来实现。大多数FTP服务器支持匿名访问,但是在某些情况下可能需要首先获得授权才能进行访问。建议在使用FTP服务器之前仔细阅读相关的使用协议和政策。
普通用户访问FTP服务器![](https://i-blog.csdnimg.cn/blog_migrate/7306c552300892e738f2b4574984ea2f.png)
1.5使用命令访问FTP
1.6 锁定普通用户主目录
1.7控制用户登录ftp服务器
1.8控制主机登录ftp
1.9虚拟目录设置![](https://i-blog.csdnimg.cn/blog_migrate/af74b0e2a61dc1d5286ea3ed673ed62d.png)
二、实战实验
2.1安装FTP服务软件
任务描述
FTP
服务器(File Transfer Protocol Server
)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP
协议提供服务。本关任务:介绍
Linux
系统上常用的FTP
服务器软件vsftpd
,我们学会如何在Linux
系统上搭建一个FTP
服务器。相关知识
FTP
服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP
协议提供服务。FTP
是File Transfer Protocol
(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP
协议的服务器就是FTP
服务器。
vsftpd
是“very secure FTP daemon
”的缩写,安全性是它的一个最大的特点。vsftpd
是一个UNIX
类操作系统上运行的服务器的名字,它可以运行在诸如Linux、BSD、Solaris、 HP-UNIX
等系统上面,是一个完全免费的、开放源代码的ftp
服务器软件,支持很多其他的FTP
服务器所不支持的特征。
vsftpd
是一款在Linux
发行版中最受推崇的FTP
服务器程序。特点是小巧轻快,安全易用。
Linux
系统安装软件和Windows
系统上安装软件不太一样,在Windows
上我们只需要下载需要安装的软件二进制文件(常见的格式是.exe
),然后双击即可进行安装。而Linux
系统上安装软件的常见方式有如下几种:
源码编译安装
软件包安装
在线安装
源码安装步骤是下载源码到本机,然后对源码进行编译,生成可执行文件,然后将生成的可执行文件拷贝到对应的安装目录即可,常见的软件源码包格式为
.tar.gz
、.tar.bz2
等;软件包安装步骤是下载好已经编译好的可执行文件包,然后使用对应的包管理工具进行安装,不同的
Linux
系统使用不同的包管理工具,常见包管理工具如下所示:
Ubuntu/Debian 系统使用 dpkg 进行管理软件包(软件包的后缀为.deb);
Redhat/CentOS 系统使用 rpm 进行管理软件包(软件包的后缀为.rpm);
在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的
Linux
系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:
Ubuntu/Debian 系统使用 apt-get 进行在线安装软件;
Redhat/CentOS 系统使用 yum 进行在线安装软件;
建议使用在线安装软件,离线安装软件常见的问题是软件间的依赖问题,如果离线安装软件,则必须要手动安装依赖的库,而在线安装则只需要一条命令完成所有的操作,在线安装会自动去安装依赖库;
源码安装VSFTP
首先下载源码包,此处使用的是vsftpd-3.0.2.tar.gz。
具体安装步骤如下所示:
解压源码包:tar zxvf vsftpd-3.0.2.tar.gz
进入源码文件夹:cd vsftpd-3.0.2/
编译源码:make
安装源码:sudo make install
复制配置文件: sudo cp vsftpd.conf /etc
注意如果是
Ubuntu
系统则需要修改Makefile
文件内容,否则在安装源码步骤会出现错误。
[原始内容]
[修改后内容]
如果安装成功则会出现如下界面:
至此源码安装
vsftpd
软件结束,如果正确安装,则可以执行vsftpd
命令启动服务:
在线安装VSFTP
本实验环境使用的系统是
Ubuntu
,所以使用apt-get
工具来在线安装软件,具体步骤如下所示:
更新软件源:sudo apt-get update
安装vsftpd:sudo apt-get install vsftpd
如果安装成功则会出现如下界面:
注意:如果当前用户是
root
,则执行以上安装命令时不需要加sudo
。
2.2FTP服务器启动/关闭
任务描述
通过上一关的学习,我们学会如何在
Linux
系统上安装vsftpd
软件,当我们安装好后,我们接下学会如何开启/关闭vsftpd
服务。本关任务:介绍在
Linux
系统上如何开启、关闭和重启vsftpd
服务。相关知识
当我们安装成功
vsftpd
软件后,默认vsftpd
服务是关闭的,此时,如果我们需要传送文件时,我们必须开启vsftpd
服务。本实验环境使用的系统是
Ubuntu
,当我们使用apt-get
在线安装软件后,通常会在/etc/init.d/
目录下生成一个启动该服务软件的脚本,例如,我们使用apt-get
安装vsftpd
软件后,我们可以看到在/etc/init.d/
目录下生成一个名为vsftpd
的脚本文件,该脚本可以用来控制vsftpd
服务的启动与关闭等信息。
[
vsftpd
服务脚本文件]Linux service 命令
Linux
系统中使用service
命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service
命令的使用格式:
service 服务名 控制命令
- 服务名:自动要控制的服务名,即
/etc/init.d
目录下的脚本文件名;- 控制命令:系统服务脚本支持的控制命令。
常见的控制命令:
start:启动该服务;
stop:关闭该服务;
restart:重新启动该服务;
status:查看该服务状态;
注意并不是所有的服务都支持以上
4
种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4
种常用的控制命令。vsftpd服务管理
当我们成功安装
vsftpd
后,接下来,我们使用service
命令来管理vsftpd
服务。我们将在以下案例演示中分别介绍如何启动、关闭、重新启动
vsftpd
服务,以及查看vsftpd
服务状态。案例演示
1
:查看
vsftpd
服务状态,可以使用如下命令:
sudo service vsftpd status
[请在右侧“命令行”里直接体验]
可以看到当前
vsftpd
服务处于waiting
状态,也就是关闭状态。案例演示
2
:启动
vsftpd
服务并且查看是否启动成功,可以使用如下命令:
sudo service vsftpd start
sudo service vsftpd status
[请在右侧“命令行”里直接体验]
可以看到
vsftpd
服务处于running
状态。案例演示
3
:重新启动
vsftpd
服务并且查看是否重新启动成功,可以使用如下命令:
sudo service vsftpd restart
sudo service vsftpd status
[请在右侧“命令行”里直接体验]
可以看到当前
vsftpd
服务先被stop
后,紧接着被start
。案例演示
4
:关闭
vsftpd
服务并且查看是否关闭成功,可以使用如下命令:
sudo service vsftpd stop
sudo service vsftpd status
[请在右侧“命令行”里直接体验]
可以看到
vsftpd
服务处于waiting
状态,也就是关闭状态。注意:如果当前用户是
root
,则执行以上命令时不需要加sudo
。编程要求
本关任务是学会如何启动/关闭
vsftpd
服务器。具体编程要求如下:
- 开启
vsftpd
服务(实验环境使用的是Ubuntu
系统)。
2.3FTP客户端
任务描述
通过以上关卡的学习,我们学会了如何安装和启动
ftp
服务器软件,接下来我们来学习如何利用ftp
进行文件的传送操作。本关任务:学会如何使用
ftp
进行本地机和远程机之间传送文件。相关知识
在
Linux
系统上ftp
客户端软件常用的有ftp
、lftp
和firefox
浏览器。
ftp
命令用来设置文件系统相关功能。ftp
服务器在网上较为常见,Linux ftp
命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp
命令的一些经常使用的命令,相信掌握了这些,使用Linux
进行ftp
操作将会非常容易。ftp命令常见用法
ftp
命令格式:
ftp [host] [port]
[host]为要连接的服务器地址,例如:127.0.0.1 (或 localhost )表示连接本地服务器;
[port]为服务器的端口,默认为 21 ,当我们修改了 vsftpd 的默认端口后,我们连接的时候需要指定新端口;
常见
ftp
命令如下所示:
FTP>open host [port] 重新建立一个新的连接;
FTP>bye: 终止主机 FTP 进程,并退出 FTP 管理方式;
FTP>close: 终止远程的 FTP 进程,返回到 FTP 命令状态, 所有的宏定义都被删除;
FTP>quit: 同 BYE;
FTP>help [command] 输出命令的解释;
FTP>cd: 更改远程计算机上的目录,同 Linux 的 cd 命令;
FTP>cdup: 更改远程计算机上的目录,返回上一级目录;
FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的 HOME 目录;
FTP>pwd: 列出当前远程主机目录;
FTP>dir [remote-directory] [local-file] 列出当前远程主机目录中的文件;
FTP>ls [remote-directory] [local-file] 同 dir;
FTP>delete: 删除远程主机中的文件;
FTP>rename [from] [to] 改变远程主机中的文件名;
FTP>rmdir directory-name 删除远程主机中的目录;
FTP>mkdir directory-name 在远程主机中建立目录;
FTP>mget [remote-files] 从远程主机接收一批文件至本地主机;
FTP>get [remote-file] [local-file] 从远程主机中传送至本地主机中;
FTP>mput local-files 将本地主机中一批文件传送至远程主机;
FTP>put local-file [remote-file] 将本地一个文件传送至远程主机中;
FTP>recv remote-file [local-file] 同 get;
FTP>send local-file [remote-file] 同 put;
FTP>status: 显示当前 FTP 的状态;
FTP>! command: 执行本地 shell 命令,如: !dir(显示本机当亲目录内容),如果不加!如:dir(显示服务器当前目录内容)。
注意:使用
ftp
命令去连接远程主机时,必须保证远程主机的vsftpd
服务是开启状态。案例演示环境初始化:执行如下操作:向文件
/etc/vsftpd.conf
(部分Linux
系统是/etc/vsftpd/vsftpd.conf
文件)结尾追加三行anon_root=/
、anon_other_write_enable=YES
和anon_umask=022
。同时将anon_upload_enable=YES
、write_enable=YES
和anon_mkdir_write_enable=YES
前的#
符号删除,并将anonymous_enable
设置为YES
,然后重新启动vsftpd
服务,下一关讲解为什么要这样做。
[修改后的配置文件]
连接远程主机
案例演示
1
:使用
ftp
客户端连接本地vsftpd
服务器,可以使用如下命令:ftp localhost
或ftp 127.0.0.1
[请在右侧“命令行”里直接体验]
如果本地
vsftpd
服务器开启的话,我们就可以直接连接程序,此时需要输入登录的用户名和密码。当正确的输入用户名和密码后,我们就可以使用ftp
来上传和下载文件了。vsftpd
服务器默认使用匿名登录,即用户名为anonymous
,密码为空(直接回车即可)。执行本地shell命令
案例演示
2
:显示本地主机的当前目录,将本地主机的当前目录修改为
/home
目录,然后显示当前目录下的文件信息,可以使用如下命令:
!pwd
lcd /home
!ls
[请在右侧“命令行”里直接体验]
执行远程shell命令
案例演示
3
:显示远程主机的当前目录,将远程主机的当前目录修改为
/tmp
目录,然后显示当前目录下的文件信息,可以使用如下命令:
pwd
cd /tmp
ls
[请在右侧“命令行”里直接体验]
上传文件
案例演示
4
:在远程主机上新建一个目录
newDir
,然后将本地的文件/home/fzm/test.c
上传到远程主机newDir
目录下并重命名为newTest.c
,可以使用如下命令:
mkdir newDir
send /home/fzm/test.c ./newDir/newTest.c
[请在右侧“命令行”里直接体验]
下载文件
案例演示
5
:将远程主机上的文件
/tmp/newDir/newTest.c
下载到本地/home/fzm
目录下并重新命名为oldTest.c
,然后将远程主机上的newDir
目录删除,可以使用如下命令:
cd /tmp
recv newDir/newTest.c /home/fzm/oldTest.c
delete newDir/newTest.c
rmdir newDir
[请在右侧“命令行”里直接体验]
退出远程连接
案例演示
6
:终止远程主机的连接,然后退出
ftp
管理程序,可以使用如下命令:
close
bye
[请在右侧“命令行”里直接体验]
编程要求
本关任务是学会如何使用
ftp
命令上传下载远程主机文件。注意:在执行本关任务前,首先执行如下命令来初始化任务环境。
apt-get update
apt-get install ftp
touch testFile
向文件 `/etc/vsftpd.conf` 结尾追加三行 anon_root=/、anon_other_write_enable=YES 和 anon_umask=022 。同时将 anon_upload_enable=YES、write_enable=YES和anon_mkdir_write_enable=YES 前的 # 符号删除,并将 anonymous_enable 设置为 YES。
注意:平台上使用的
vsftpd
的配置文件对应需要修改的配置项位置如下所示(需要手动添加的配置项只需在文件默认添加即可):
具体编程要求如下:
- 启动
vsftpd
服务;- 使用
ftp
命令连接本机(将本机作为远程服务器);- 切换远程服务器的当前工作目录为
tmp
;- 在远程服务器上新建一个目录
Dir
;- 将本地的一个文件(
/root/testFile
)上传到远程主机的Dir
目录下并重命名为upLoadFile
。
ftp连接远程服务器时报错
USER ***
331Please specify password
PASS ***
530 Login incorrect
---------------->
经过大量排查发现了错误,是因为用户鉴权问题没解决好,(因为用户是nologin的,所以存在)
解决方法:
第一种:vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd文件里这一行:
#auth required pam_shells.so#%PAM-1.0
#session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
如图:
第二种:vi /etc/shells
在最后一行下边加上/sbin/nologin
值得注意的是 添加完之后的代码下一行必须是~两种方式任选一种就可以啦~
这样最后重启服务器就可以解决啦!
# 启动vsftpd服务
sudo service vsftpd start
# 使用t命令连接本机(将本机作为远程服务器)
ftp -n <本机IP地址>
# 切换远程服务器的当前工作目录为tmp
cd /tmp
# 在远程服务器上新建一个目录Dir
mkdir Dir
# 将本地的文件(/root/testFile)上传到远程主机的Dir目录下并重命名为upLoadFile
put /root/testFile Dir/upLoadFile
# 退出FTP连接
bye
2.4FTP服务器配置
任务描述
通过以上关卡的学习,我们学会了使用
ftp
命令来登录远程主机,并进行文件的上传和下载操作。接下来我们来学习如何配置vsftpd
服务器。本关任务:学会
vsftpd
服务器的常见配置。相关知识
上一关卡中,我们在案例演示前进行了一系列环境的初始化,现在我们详细的介绍为什么我们要做那些环境的配置。
vsftpd
服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍vsftpd
常见的配置项功能,vsftpd
服务器的配置文件存放路径为:/etc/vsftpd.conf
,部分Linux
系统是存放在/etc/vsftpd/vsftpd.conf
目录下。
vsftpd
服务器的连接方式有两种,一种是可以使用匿名(anonymous
)登录,另一种是可以使用本地用户进行远程登录,默认情况下是使用匿名登录。
ftp
匿名登录常见关于匿名登录的配置项如下所示:
anonymous_enable: 是否允许匿名登录 FTP 服务器,默认设置为 YES 允许,如不允许匿名访问则设置为 NO;
anon_upload_enable:是否允许匿名用户上传文件,须将全局的 write_enable=YES。默认为 YES;
anon_mkdir_write_enable:是否允许匿名用户创建新文件夹;
anon_other_write_enable:是否允许匿名用户对文件或目录进行删除、重命名等操作;
anon_root: 匿名用户的默认工作目录;
anon_umask: 匿名用户的文件掩码为缺省 022。
案例演示
1
:禁止使用匿名用户登录
ftp
服务器,具体使用如下步骤:
设置 anonymous_enable=NO(sudo vim /etc/vsftpd.conf)
sudo service vsftpd restart
ftp localhost
[修改配置文件]
[请在右侧“命令行”里直接体验]
可以看到当我们把`anonymous_enable=NO`后,同时`vsftpd`又默认禁止本地用户登录,所以在远程连接主机时就会出现错误。
ftp
本地用户登录常见关于本地用户登录服务器的配置项如下所示:
local_enable: 是否允许本地用户(即 linux 系统中的用户帐号)登录 FTP 服务器,默认设置为 NO 允许,本地用户登录后会进入用户主目录;
write_enable:是否允许本地用户对 FTP 服务器文件具有写权限,默认设置为 YES 允许;
chroot_local_user:是否将所有用户限制在主目录, YES 为启用 NO 禁用;
chroot_list_enable:是否启动限制用户的名单 YES 为启用 NO 禁用;
chroot_list_file:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于 chroot_local_user 的值;
local_root: 本地用户登录后的默认工作目录;
local_umask: 设置本地用户的文件掩码为缺省 022;
userlist_enable:此选项激活后,vsftpd 将读取 userlist_file 参数所指定的文件中的用户列表,默认为 NO;
userlist_file:userlist_enable 选项生效后,被读取的包含用户列表的文件。默认值是 /etc/vsftpd.user_list;
userlist_deny:决定禁止还是只允许由 userlist_file 指定文件中的用户登录 FTP 服务器。userlist_enable 选项启动后才能生效。默认值为 YES,禁止userlist_file 指定文件中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许 userlist_file 指定文件中的用户登录FTP服务器;
chroot_local_user
、chroot_list_enable
和chroot_list_file
三个配置项间的关联关系如下表所示:
chroot_local_user=YES chroot_local_user=NO chroot_list_enable=YES 1. 所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 chroot_list_enable=NO 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户
userlist_enable
、userlist_deny
和userlist_file
三个配置项间的关联关系如下表所示:
userlist_enable=YES userlist_enable=NO userlist_deny=YES 禁止userlist_file指定文件中的用户登录,同时不向这些用户发出输入口令的指令 不影响用户登录 userlist_deny=NO 只允许userlist_file指定文件中的用户登录 不影响用户登录 案例演示环境初始化:如果用户想在本平台的右侧命令行进行验证如下案例,则需要将
vsftpd
的配置文件(/etc/vsftpd.conf
)中pam_service_name=vsftpd
修改为pam_service_name=ftp
,笔者建议用户在本地的Ubuntu 12.04
系统上进行验证。案例演示
1
:新建一个本地用户(
ftpUser
,密码为123456
),然后配置vsftpd
服务允许本地用户登录,使用ftpUser
远程连接主机,具体使用如下步骤:
sudo useradd ftpUser
sudo passwd ftpUser
设置 local_enable=YES(sudo vim /etc/vsftpd.conf)
sudo service vsftpd restart
ftp localhost
[请在右侧“命令行”里直接体验]
[修改配置文件]
[请在右侧“命令行”里直接体验]
案例演示
2
:所有用户限制在主目录不能进行其它目录的切换(除主目录外),使用
ftpUser
进行远程连接验证,具体使用如下步骤:
设置 chroot_local_user=YES(sudo vim /etc/vsftpd.conf)
sudo chmod a-w /home/ftpUser
sudo service vsftpd restart
ftp localhost
[修改配置文件]
[请在右侧“命令行”里直接体验]
注意:如果启用
chroot
,必须保证登录ftp
服务器的用户根目录不可写,因此要执行sudo chmod a-w /home/ftpUser
(因为是使用ftpUser
用户登录,如果其它用户登录则修改对应的根目录)。可以发现登录后,我们切换当前目录为
/
,然后列出当前目录下的所有文件,发现只存在一个文件,因为此时的/
目录不是我们整个系统的根目录,这里的根目录其实只是/home/ftpUser
目录而已。案例演示
3
:禁止
/etc/vsftpd/userlist
文件中的用户登录ftp
服务器,使用ftpUser
用户进行验证,具体使用如下步骤:
设置 userlist_deny=YES、userlist_enable=YES和userlist_file=/etc/vsftpd/user_list(sudo vim /etc/vsftpd.conf)
sudo mkdir /etc/vsftpd/
sudo touch etc/vsftpd/user_list
向 /etc/vsftpd/user_list 文件中添加一行内容 ftpUser(sudo vim /etc/vsftpd/user_ist)
sudo service vsftpd restart
ftp localhost
[修改配置文件]
[请在右侧“命令行”里直接体验]
[向
/etc/vsftpd/user_list
文件中添加ftpUser
]
[请在右侧“命令行”里直接体验]
vsftpd
其它配置常见其它配置项如下所示:
data_connection_timeout:设置数据连接超时时间;
idle_session_timeout:设置数据传输中断间隔时间;
ascii_upload_enable:是否以 ASCII 方式上传数据;
ascii_download_enable:是否以 ASCII 方式下载数据;
编程要求
本关任务是学会如何配置
ftp
服务器。注意:在执行本关任务前,首先执行如下命令来初始化任务环境。
useradd -m newUser
passwd newUser(设置密码为:123456)
touch testFile
将 vsftpd 的配置项 pam_service_name 的值修改为 ftp
具体编程要求如下:
- 使用
newUser
进行连接本地ftp
服务器;- 将
/root/testFile
文件上传到远程服务器的当前工作目录下并重命名为upLoadFile
。
# 连接到远程服务器
ftp <远程服务器IP地址>
# 登录到FTP服务器
<用户名>
<密码>
# 创建名为upLoadFile的文件
touch upLoadFile
# 上传/root/testFile文件到远程服务器的当前工作目录下,并将其重命名为upLoadFile
put /root/testFile upLoadFile
# 退出FTP连接
bye