linux的文件传输协议(ftp)

FTP是用于在网络上进行文件传输的一套标准协议,文件传输协议,使用客户/服务器模式。

安装vsftpd

首先先把selinux改为disabled,因为这会干扰到接下来的实验,之后重启计算机。

vim /etc/sysconfig/selinux

在这里插入图片描述
在这里插入图片描述
查看状态为disabled。

yum install vsftpd lftp -y

在这里插入图片描述
安装vsftp,lftp,用vsftp作为服务端共享文件,用lftp做客户端访问。

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

在这里插入图片描述
使火墙对lftp的访问不进行拦截。

匿名用户设定

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述
首先查看这个文件确保匿名用户可登陆,YES表示允许登陆,NO表示不允许,这个文件是这个服务的主要配置文件。
在这里插入图片描述
在这里插入图片描述
开启vsftpd服务。

lftp 172.25.62.252

在这里插入图片描述
使用匿名用户登陆匿名用户登陆的方式是lftp+ip的方式。

匿名用户的上传
上传时用put [文件名]的方式
在这里插入图片描述
550报错,表示文件系统权限过大。匿名用户默认是不可以上传的,上传文件是对目录的写操作,必须对目录有写权限

vim /etc/vsftpd/vsftpd.conf 

对里面的参数进行修改。

write_enable=YES					##给与用户写权限
anon_upload_enable=YES				##允许匿名用户上传

在这里插入图片描述

systemctl restart vsftpd.service

重启服务

 chmod u-w	/var/ftp				##减掉所有者的写权限,所有用户的家目录不能有写权限
 chgrp ftp /var/ftp/pub				##更改目录的所属组
 chmod 775 /var/ftp/pub				##更改目录权限,使匿名用户对目录可写

在这里插入图片描述
上传成功。
对匿名用户的管理

vim /etc/vsftpd/vsftpd.conf 

修改这个配置文件之后必须重启服务。

anon_root=/direcotry				##修改匿名用户的家目录
anon_umask=xxx						##修改匿名用户的文件默认权限
anon_mkdir_write_enable=YES|NO		##匿名用户是否能建立目录
anon_world_readable_only=YES|NO		##匿名用户是否能下载文件
anon_other_write_enable=YES|NO		##匿名用户是否能删除文件

在这里插入图片描述
修改匿名用户家目录为/westos,目录必须存在,修改完成后要记得重启服务设定才会生效。
在这里插入图片描述
修改匿名用户的文件默认权限
在这里插入图片描述
默认权限改为644。
在这里插入图片描述
在这里插入图片描述修改后匿名用户可以创建目录。
在这里插入图片描述
在这里插入图片描述修改后匿名用户可以下载文件,下载用get [文件名]的方式,,如果要禁止下载就把YES改为NO就可以了。
在这里插入图片描述
在这里插入图片描述
修改后匿名用户可以删除文件,把YES改为NO可以禁止这个功能。
匿名用户的用户身份修改
匿名用户也可以用其他用户的身份登陆。

vim /etc/vsftpd/vsftpd.conf 
chown_uploads=YES			##开启用户身份修改功能
chown_username=student		##以student的身份登陆

在这里插入图片描述
上传文件时时以student用户的身份上传的,uid为1000。
设置最大上传速率

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述
设置最大上传速率为100k/s

dd if=/dev/zero of=bigfile bs=1M count=1000

在这里插入图片描述
截取一段数据用于测试。
在这里插入图片描述
可以看到速率被限制在100左右。
设置最大连接数

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述
设置最大连接数为1,
在这里插入图片描述
使用第一台设备成功连接。
在这里插入图片描述
使用第二台设备连接失败进入等待状态。
在这里插入图片描述
第一台设备图退出后第二台设备可以成功连接。

本地用户设定

vim /etc/vsftpd/vsftpd.conf 
local_enable=YES | NO				##本地用户登录限制
write_enable=YES | NO				##本地用户写权限限制
local_root=/directory				##本地用户家目录修改
local_umask=xxx			   			##本地用户上传文件默认权限

这些是本地用户的基本配置,基本和匿名用户类似。
登陆本地用户

lftp 172.25.62.252 -u 用户名

在这里插入图片描述
使用本地用户登陆,需要输入密码。
登陆后记得把家目录的写权限去掉。
限制本地用户浏览目录
在这里插入图片描述
本地用户登陆后是可以自由浏览目录的,我们可以对他做出限制。

vim /etc/vsftpd/vsftpd.conf 
chroot_local_user=YES			##将所有本地用户锁在自己的家目录中。

在这里插入图片描述
在这里插入图片描述
此时,用户已经被锁在自己的家目录了。
我们还可以建立黑白名单对本地用户进行管理。
建立黑名单

vim /etc/vsftpd/vsftpd.conf 
chroot_local_user=NO
chroot_list_enable=YES			##打开名单列表	
chroot_list_file=/etc/vsftpd/chroot_list

在这里插入图片描述
首先默认不要把本地用户锁在家目录中,之后开启列表的功能,在列表中的名单被锁在自己的家目录中,这就建好了黑名单。

vim /etc/vsftpd/chroot_list

在这里插入图片描述
建立这个文件,记录名单中的用户,此时student,在黑名单中,被锁在家目录中,无法访问其他目录。

建立白名单

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

将chroot_local_user改为YES,此时所有用户默认都被锁在自己的家目录中,/etc/vsftpd/chroot_list这个文件变为白名单,在这个名单中的用户不会被锁在家目录中。
在这里插入图片描述
此时,在名单中的student,变成了白名单用户,可以自由浏览根目录了。
限制本地用户登录

vim /etc/vsftpd/ftpusers			##限制本地用户登陆的永久黑名单

在这里插入图片描述
这个文件是限制本地用户登陆的永久黑名单,只要在这个名单内的所有用户都不可以进行登陆。
在这里插入图片描述
此时,student在黑名单中,不可以正常登陆了。
除此之外,我们还可以在另一个文件里设置一个临时的黑名单。

vim /etc/vsftpd/user_list

在这里插入图片描述
在这个名单的用户同样不能正常登陆。
不过为什么叫它临时的黑名单呢?
因为这个文件也可以变为白名单。

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述
在这个文件加上这个参数。

vim /etc/vsftpd/user_list

在这里插入图片描述
此时在编辑这个文件,里面的名单就变成白名单了,不过要注意的是,在/etc/vsftpd/ftpusers里出现的名单是永久的黑名单,此时这些用户在出现在白名单上也是不能登陆的。

ftp虚拟用户的登录

虚拟用户就是在系统中不存在的用户。
创建虚拟帐号

vim /etc/vsftpd/yingfile	##文件名任意

在这里插入图片描述
在文件内写入用户名和密码,为方便实验,密码都设置123。

db_load -T -t hash -f /etc/vsftpd/yingfile /etc/vsftpd/yingfile.db

将这个文件转化为后缀为.db的文件。

vim /etc/pam.d/ying			##设置用户的认证

在这里插入图片描述
设置虚拟用户的用户名和密码的认证。

vim /etc/vsftp/vsftp.conf
pam_service_name=ying		##更改认证方式
guest_enable=YES			##打开虚拟用户功能
guest_username=ftp			##指定用户登录身份

在这里插入图片描述
更改认证方式,使虚拟用户可以通过认证,同时打开虚拟用户功能,并指定用户登录身份为ftp,这里更改的认证方式就是上面设置用户的认证的文件名,这后重启vsftp就可以使用虚拟用户登陆了。
在这里插入图片描述
虚拟用户正常登陆。
指定虚拟用户登录家目录

 mkdir /var/ftpuser/ying{1..3} -p			##创建目录
 touch /var/ftpuser/ying1/file1
 touch /var/ftpuser/ying2/file2				##创建文件用来区分目录
vim /etc/vsftp/vsftp.conf

在这里插入图片描述
第一行表示指向的家目录,第二行是使$USER在这个文件中生效,它代表的是用户名。
在这里插入图片描述
在这里插入图片描述可以看到,两个虚拟用户登陆的时候都到了我们设定好的家目录中。
虚拟帐号的配置独立
刚才我们所做的是对所有虚拟帐号的配置,那么如何对单个的虚拟用户进行配置呢?

mkdir -p /etc/vsftpd/userconf			##创建一个目录
vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
这这个文件写入这个参数,指向这个目录。

vim /etc/vsftpd/userconf/ying1		   ##对ying1用户进行单独配置

需要注意的是,这里新建的文件名必须和所要配置的虚拟用户名名字一致。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值