linux从青铜到王者-FTP配置文件及使用方法

607 阅读5分钟

大家好,我是互联网老辛,这是我参与更文挑战的第18天, 活动详情查看:更文挑战

前言

上篇文章我们探讨了ftp的原理及基本使用,今天我们来聊聊ftp服务的配置文件。 每个服务的配置文件都值得花时间研究。

ftp配置文件详解

1. 常见默认配置参数
[root@gaosh-17 vsftpd]# pwd
/etc/vsftpd
[root@gaosh-17 vsftpd]# egrep -v '^$|^#' vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@gaosh-17 vsftpd]# 

2. 常见参数的含义
use_localtime=YES          #ftp时间和系统同步,如果启动有错误,请注销
reverse_lookup_enable=NO   #添加此行,解决客户端登陆缓慢问题
listen_port=21    		   #默认无此行,ftp端口为21
anonymous_enable=NO    	  #禁止匿名用户
local_enable=YES		   #设定本地用户可以访问
write_enable=YES         	#全局设置,是否容许写入
local_umask=022 			#设定上传后文件的权限掩码
local_root=/home/tom		#本地用户ftp根目录,默认是本地用户的家目录
local_max_rate=0			#本地用户最大传输速率(字节)。0为不限制
anon_upload_enable=NO 		#禁止匿名用户上传。
anon_mkdir_write_enable=NO  #禁止匿名用户建立目录
connect_from_port_20=YES 	#设定端口20进行数据连接
chown_uploads=NO 			#设定禁止上传文件更改宿主
pam_service_name=vsftpd 	#设定PAM服务下Vsftpd的验证配置文件名,PAM验证将参考/etc/pam.d/下
userlist_enable=YES    		#设为YES的时候,如果一个用户名是在userlist_file参数指定的文件中,那么在要求他们输入密码之前,会直接拒绝他们登陆
tcp_wrappers=YES  是否支持tcp_wrapper
idle_session_timeout=300    #超时设置
data_connection_timeout=1    #空闲1秒后服务器断开

配置文件使用举例

本地用户默认配置

1. 创建本地用户tom并设置密码
[root@gaosh-17 vsftpd]# useradd tom
[root@gaosh-17 vsftpd]# echo 123456 |passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@gaosh-17 vsftpd]# 
2. 设置本地用户常用参数
anonymous_enable=NO  关闭匿名登录
local_enable=YES	#设定本地用户可以访问
write_enable=YES	#全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
local_umask=022 	#设定上传后文件的权限掩码
local_root=/home/tom		#本地用户ftp根目录,默认是本地用户的家目录
local_max_rate=0			#本地用户最大传输速率(字节)。0为不限制
[root@gaosh-17 vsftpd]# systemctl restart vsftpd
[root@gaosh-17 vsftpd]# 
3. 测试本地用户上上传和下载

ftp登录: 输入用户名密码

在这里插入图片描述

上传测试: 在这里插入图片描述

查看服务器上的目录:

[oot@gaosh-17 vsftpd]# cd /home/tom/
[root@gaosh-17 tom]# ls
tom-test
[root@gaosh-17 tom]# 

客户端工具的使用:

一. lftp介绍

1. 客户端安装:
[root@gaosh-17 ~]# yum install -y lftp
2. lftp使用介绍

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。lftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

3. lftp常用命令
1)常见参数如下:
命令作用
ls显示远端文件列表(!ls 显示本地文件列表)。
cd切换远端目录(lcd 切换本地目录)。
get下载远端文件。
mget下载远端文件(可以用通配符也就是 *)。
pget使用多个线程来下载远端文件, 预设为五个。
mirror下载/上传(mirror -R)/同步 整个目录。
put上传文件。
mput上传多个文件(支持通配符)。
mv移动远端文件(远端文件改名)。
rm删除远端文件。
mrm删除多个远端文件(支持通配符)。
mkdir建立远端目录。
rmdir删除远端目录。
pwd显示目前远端所在目录(lpwd 显示本地目录)。
du计算远端目录的大小
!执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd切换本地目录
lpwd显示本地目录
alias定义别名
bookmark设定书签。
exit退出ftp
2) 补充说明:
  1. ftp只能上传和下载文件,不能对文件夹进行操作,如果想上传/下载文件夹需要进行压缩/解压缩操作

  2. ftp服务器登录通常使用匿名登录方式(用户名:anonymous或者ftp,匿名用户只能在指定目录范围内登录)

  3. lftp第三方ftp客户端,可以进行目录操作

三. 使用举例

1. 使用普通用户登录

使用tom用户登录

[root@gaosh-17 ~]# lftp tom@192.168.1.17
口令: 
lftp tom@192.168.1.17:~> ls            
drwxr-xr-x    2 1001     1001            6 Jul 17 13:46 tom-test
lftp tom@192.168.1.17:~> 
2. 下载和上传
1)下载测试: get,mget
[root@gaosh-64 ~]# mkdir pgtest
[root@gaosh-64 ~]# cd pgtest/
[root@gaosh-64 pgtest]# touch aaa

[root@gaosh-64 pgtest]# lftp 192.168.1.17
lftp 192.168.1.17:~> cd pub/
lftp 192.168.1.17:/pub> ls
-rw-r--r--    1 14       50           2523 Jul 18 05:33 CentOS-Base.repo

lftp 192.168.1.17:/pub> mget -c CentOS-Base.repo 
2523 bytes transferred

在这里插入图片描述

2) 上传测试 put ,mput

匿名用户家目录/var/ftp权限是755,这个权限是不能改变的 为了能够写入,我们先在/var/ftp下创建一个文件,pgtest . 然后给予pgtest权限。

vsftpd服务器:

[root@gaosh-17 ~]# cd /var/ftp/
[root@gaosh-17 ftp]# mkdir pgtest
[root@gaosh-17 ftp]# chmod -R 777 pgtest/

客户端上传测试:

[root@gaosh-64 pgtest]# lftp 192.168.1.17

lftp 192.168.1.17:~> ls
drwxrwxrwx    2 0        0               6 Jul 18 07:20 pgtest
dr-xr-xr-x    2 0        0              30 Jul 18 05:43 pub
lftp 192.168.1.17:/> cd pgtest/
lftp 192.168.1.17:/pgtest> put aaa
lftp 192.168.1.17:/pgtest> ls
-rw-------    1 14       50              0 Jul 18 07:21 aaa

总结:

本文主要介绍了ftp服务的配置文件详解及lftp客户端的使用详解。