大家好,我是互联网老辛,这是我参与更文挑战的第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) 补充说明:
-
ftp只能上传和下载文件,不能对文件夹进行操作,如果想上传/下载文件夹需要进行压缩/解压缩操作
-
ftp服务器登录通常使用匿名登录方式(用户名:
anonymous或者ftp,匿名用户只能在指定目录范围内登录) -
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客户端的使用详解。