FTP的概要基础

FTP的概要

FTP的作用:文件的上传和下载 属于tcp服务
端口:21:是控制层面,用于账户密码验证。20:是数据层面,用于文件的上传和下载
FTP的三种账户
匿名账户:登录名为ftp、anonymous,不验证密码即可登录
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf/
anonymous_enable_=YES#允许匿名账户登录
anon_upload_enable=YES#允许匿名账户上传
anon_mkdir_write_enable=YES#允许匿名账户新建文件或目录
anon_other_write_enable=YES#允许匿名账户的其他权限
anon_umask=022#设置匿名账户的权限755
local_enable=YES#允许本地账户登录
local_max_rate=102400#本地账户限速
chroot_local_user=yes#锁定宿主目录,此配置针对本地账户
write_enable=YES#写的权限开启,如果想让用户上传文件,需要此权限
local_umask=022#本地账户的权限为755
dirmessage_enable=YES#
xferlog_enable=YES#
connect_from_port_20=YES#
xferlog_std_format=YES#
listen=YES#监听ipv4地址的请求
listen_ipv6=NO#监听ipv6地址的亲求
先在/var/ftp/pub/下创建目录或文件做测试用
chown -R ftp.ftp /var/ftp/pub/#修改文件属主属组
chmod -R 755 /var/ftp/pub/#修改权限
可在windows上通过资源管理器和浏览器访问(配置ftp的Linux主机需连接网络)

系统账户:本身系统已存在的账户,需密码验证

验证方式:验证/etc/passwd和/etc/shadow
验证的是用户列表(用户必须是系统创建)相当于白名单,默认root账户不可登录(黑名单)
大部分配置包括在匿名账户配置中
加入:allow_writeable_chroot=YES#允许宿主目录写的权限
测试:在配置ftp的主机上创建用户以及下面的文档

在另一台Linux上登录

上传下载文件

vi /etc/vsftpd/user_listR#设置本地用户可登录列表
vi /etc/vsftpd/vsftpd.conf
userlist_deny=NO#只允许用户列表里的用户登录
虚拟虚拟账户:预定义的列表账户(以前系统从未创建过的)
vi /etc/vsftpd/vusers.list
mike
123
john
234
新建虚拟用户账户数据库
cd /etc/vsftpd/
db_load -T -t hash -f vusers.list vusers.db #生成数据库文件(hash算法)
file vusers.db #查询成功与否
chmod 600 /etc/vsftpd/vusers.* #设置文件权限
useradd -d /var/ftproot(宿主目录) -s /sbin/nologin virtual #创建虚拟账户(相当于中介)
chmod -R 755 /var/ftproot #指定其宿主目录权限为755
vi /etc/pam.d/vsftpd.vu #针对虚拟用户创建pam认证
#%PAM-1.0
auth(认证方式) required(控制方式) pam_userdb.so(认证模块) db=/etc/vsftpd/vusers.db(数据库文件来源)
account required pam_userdb.so db=/etc/vsftpd/vusers.db
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #关闭匿名账户
local_enable=YES #启用本地账户,一定要启用
chroot_local_users=YES #锁定
guest_enable=YES #启用虚拟用户
guest_username=virtual #指定虚拟用户的宿主用户
pam_service_name=vsftpd.vu #pam认证的文件
anon_world_readable_only=NO #允许虚拟用户下载
max_cilents=400 #最大连接数
max_per_ip=10 #每ip最大可登录数
listen=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/vusers_dir #配置文件
write_enable=YES
mkdir /etc/vsftpd/vsusers_dir
cd /etc/vsftpd/vsusers_dir/
vi mike #默认只能下载,不可上传,可进入设置开启上传权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
write_enable=YES
vi john #空文件,只有默认的现在权限
systemctl restart vsftpd
在 /var/ftproot下创建文件测试
FTP不同账户访问服务器
建立ftp服务器

[root@server2 ~]# systemctl stop firewalld      
[root@server2 ~]# setenforce 0                   
[root@server2 ~]# yum -y install vsftpd         

匿名客户

  1. 配置文件
    root@server2 ~]# vi /etc/vsftpd/vsftpd.conf
   anonymous_enable=YES
   anon_umask=022
   anon_upload_enable=YES
   anon_mkdir_write_enable=YES
   anon_other_write_enable=YES
   listen=YES
   listen_ipv6=NO

在这里插入图片描述

2,服务启动, 过滤显示配置文件内容

[root@server2 ~]# systemctl start vsftpd                                              
[root@server2 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"   

在这里插入图片描述

3,查看pam认证文件内容

[root@server2 ~]# cd /etc/pam.d/
[root@server2 pam.d]# ls -lh

在这里插入图片描述![

4.查看配置文件

[root@server2 pam.d]# vi vsftpd

在这里插入图片描述

5.创建文件,设置权限,用来测试匿名用户

[root@server2 pam.d]# cd /var/ftp/pub    
[root@server2 pub]# echo "abc123" > a.txt        
[root@server2 pub]# echo "bcd123" > b.txt
[root@server2 pub]# chmod -R 755 /var/ftp/pub           设置文件或目录的权限
[root@server2 pub]# chown -R ftp.ftp /var/ftp/pub       设置文件或目录的归属
[root@server2 pub]# ls -lh

在这里插入图片描述

6.启动一台客户机

[root@client1 ~]# systemctl stop firewalld
[root@client1 ~]# yum -y install ftp

7.进入ftp服务器进行匿名账户操作
[root@client1 ~]# ftp 20.0.0.11

Name (20.0.0.11:root): ftp
230 Login successful.                          
ftp> ls -lh                     
ftp> cd pub 
ftp> ls -lh
ftp> mkdir 1                                    
ftp> put anaconda-ks.cfg                        
ftp> ls -lh        

在这里插入图片描述

8.到ftp服务器上进行查看刚才创建的文件

root@server2 pub]# ls -lh

在这里插入图片描述

9.在Window是进行访问ftp服务器
在文件搜索栏输入地址ftp://20.0.0.11/pub/
可以新建文件夹3,添加文件新建文本文档
在这里插入图片描述

10.在网页上同样可以访问ftp服务器
同样在搜索栏上输入命令ftp://20.0.0.11/pub/在这里插入图片描述

11.进入ftp服务器进行查看

[root@server2 pub]# ls -lh

在这里插入图片描述

本地客户
1.在服务器上创建两个用户

[root@server2 ~]# useradd liming
[root@server2 ~]# passwd liming
[root@server2 ~]# useradd zhangba
[root@server2 ~]# passwd zhangba
[root@server2 ~]# cd /home/liming             
[root@server2 liming]# vi ab.txt
[root@server2 liming]# cd /home/zhangba
[root@server2 zhangba]# vi ac.txt

在这里插入图片描述在这里插入图片描述

2.在客户机上创建文件

[root@client1 ~]# touch www
[root@client1 ~]# vi www
[root@client1 ~]# vi www2
[root@client1 ~]# ls -lh

在这里插入图片描述

3.在服务器是编辑配置文件

[root@server2 ~]# vi /etc/vsftpd/vsftpd.conf
[root@server2 ~]# systemctl restart vsftpd

 修改:
 #anonymous_enable=YES          允许匿名账户登录
 #anon_upload_enable=YES        允许匿名账户上传
#anon_mkdir_write_enable=YES   允许匿名账户新建文件或目录
#anon_other_write_enable=YES   允许匿名账户的其他写权限
#anon_umask=022                设置匿名账户的权限为755
chroot_local_user=YES          锁定宿主目录
添加:
allow_writeable_chroot=YES     允许宿主目录的写权限

4.查看配置文件

[root@server2 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"

在这里插入图片描述

5.在客户机上登录进行操作

[root@client1 ~]# ftp 20.0.0.11
Name (20.0.0.11:root): zhangba
ftp> ls -lh
ftp> get ac.txt                           
ftp> put www                              
ftp> bye
[root@client1 ~]# ls -lh        

在这里插入图片描述
在这里插入图片描述

6.在服务器上查看上传文件

[root@serve![在这里插入图片描述](https://img-blog.csdnimg.cn/2020110612134643.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUwMzk5MDA2,size_16,color_FFFFFF,t_70#pic_center)
r2 ~]# cd /home/zhangba
[root@server2 zhangba]# ls -lh

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值