linux中的ftp基本使用

1.安装ftp服务软件

1.ftp服务端:
安装服务软件:vsftpd
启动服务
启用服务

yum install vsftpd.x86_64  		##安装vsftp服务

在这里插入图片描述
开启并启用ftp服务:
在这里插入图片描述

yum install lftp-4.4.8-7.el7.x86_64 	##安装ftp软件

在这里插入图片描述
添加防火墙策略:
允许ftp服务:firewall-cmd --permanent --add-service=ftp
在这里插入图片描述
添加结果如下图:
在这里插入图片描述

rpm -qc vsftpd			##查看ftp服务的配置文件

在这里插入图片描述
安装完成后,我们可以看到 /var/ftp/pub目录,当用户匿名使用ftp,此目录就是匿名用户的家目录,而当使用本地用户登陆ftp时,本地用的家目录就是/home/localname目录,其中localname指本地用户的用户名:
在这里插入图片描述
2.在ftp客户端:
安装lftp软件:yum install lftp-4.4.8-7.el7.x86_64 ##安装lftp客户端软件
在这里插入图片描述
安装完成后,效果如下:
在这里插入图片描述
我们可以访问到172.25.150.150主机的pub目录
“注意”:在ftp服务端,使用getenforce,若状态为enforcring,则需要进行如下设置:
在这里插入图片描述
在这里插入图片描述
重启:reboot,可以看到状态变为disabled,此时ftp服务可以正常使用
在这里插入图片描述

2.ftp服务的基本使用

1.ftp服务的基本信息:
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
配置文件:/etc/vsftpd/vsftpd.conf
报错id解析:
  500 ##文件系统权限过大
  530 ##用户认证失败
  550 ##服务本身功能未开放
  553 ##本地文件系统权限太小
若我们需要对vsftpd服务进行配置,则需要编辑此文件:/etc/vsftpd/vsftpd.conf
1.匿名用户登陆:

vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES|NO	##YES:允许匿名登陆 | NO:不允许匿名用户登陆

在这里插入图片描述
在这里插入图片描述
我们可以看到,此时匿名用户不能登陆
在这里插入图片描述
2.16 local_enable=YES|NO ##YES:允许本地用户登陆 | NO:不允许本地用户登陆
在这里插入图片描述
此时再使用本地用户登陆,就不能再登陆:
在这里插入图片描述
3.9 write_enable=YES|NO ##YES:ftp是否对登陆的用户写 | NO:不可写
在YES状态下,我们可以执行一下操作:
在这里插入图片描述
在这里插入图片描述
当改为NO后,不能在写入文件:
在这里插入图片描述
在这里插入图片描述
4.匿名用户上传文件:

vim /etc/vsftpd/vsftpd.conf		#匿名用户上传身份默认是ftp
19 write_enable=YES
29 anon_upload_enable=YES
chgrp ftp /var/ftp/pub/			##将此目录的所有组改为ftp	
chmod g+w /var/ftp/pub/			##对pub目录添加写权限 
systemctl restart vsftpd		###重启vsftpd服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.匿名用户家目录修改

vim /etc/vsftpd/vsftpd.conf 
13  anon_root=/test

在这里插入图片描述
在服务端/test目录下创建文件:
在这里插入图片描述
在使用匿名用户登录ftp,我们可以看到,此时匿名用户的家目录已经变为/test:
在这里插入图片描述
6.匿名用户上传文件权限修改

vim /etc/vsftpd/vsftpd.conf 
14  anon_umask=022

未进行修改前,我们可以看到上传的passwd文件权限为600:
在这里插入图片描述
将 anon_umask修改为022,则实际匿名用户上传文件的权限为755,但由于本地文件系统,最终上传文件的权限为644:
在这里插入图片描述
在这里插入图片描述
7.匿名用户建立目录

36 anon_mkdir_write_enable=YES|NO	##YES:允许匿名用户建立目录 | NO:不允许

在未修该此参数之前,我们可以看到,匿名用户是不能建立目录的:
在这里插入图片描述
修改此参数:
在这里插入图片描述
可以成功建立目录:
在这里插入图片描述
8.匿名用户使用的身份参数修改

chown_uploads=YES		
chown_username=ww		##此用户必须是ftp服务端的正常可登陆的用户
chown_upload_mode=0644

在客户端/mnt目录下新建文件file,上传file,我们可以看到file的拥有者与所有都为ftp:
在这里插入图片描述
在这里插入图片描述
删除file,修改参数,在上传,我们可以看到file的拥有者与所有人发生了改变:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们可以查看用户ww的信息,发现刚刚上传的文件file的拥有人变为ww:
在这里插入图片描述
9.最大上传速率

anon_max_rate=10240000						##限制最大上传速率大约为10M/s
dd if=/dev/zero of=/mnt/test bs=1M count=100	##截取100M大的数据

在未限制上传速率前,我们可以看到,上传的速率是很高的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10.最大连接数

max_clients=1	##限制最大的用户连接数为1个用户

在这里插入图片描述
我们链接一个用户:
在这里插入图片描述
此时再链接一个用户:
在这里插入图片描述
我们退出用户登录:
在这里插入图片描述
此时就可以再登录:
在这里插入图片描述
11.本地用户登陆限制

local_enable=YES|NO		##YES:允许本地用户登陆 | NO:不允许本地用户登录

在这里插入图片描述
此时本地用户不能再登录:
在这里插入图片描述
12.本地用户读写限制

write_enable=YES|NO	##YES:本地用户允许读写 | NO:本地用户不允许读写

修改前,我们不能删除文件:
在这里插入图片描述
修改后,可以删除:
在这里插入图片描述
13.本地用户家目录修改
我们已知,使用本地用户登录时的家目录就是此用户的家目录,上面我们已经说过如何修改匿名用户的家目录,那么,我们也可以修改本地用户的登录家目录:

local_root=/mnt       ##/mnt表示索要设定的家目录

修改本地用户家目录为:/mnt
在这里插入图片描述
在/mnt目录下新建几个文件:
在这里插入图片描述
此时使用本地用户ww登录,我们可以看到此时的家目录就是/mnt:
在这里插入图片描述
14.本地用户上传文件权限

local_umask=022		##修改本地用户上传的文件的umask值

我们修改umask值为022,则本地上传的文件的权限为644:
在这里插入图片描述
在这里插入图片描述
15.限制本地用户登陆
  1).用户黑名单:

/etc/vsftpd/ftpusers	##用户永久黑名单
/etc/vsftpd/user_list	##用户临时黑名单

永久黑名单是指,在此名单中的用户无论如何都不能登录
临时黑名单是指,当系统限制所有用户登陆时,此名单变为白名单,仅有名单中的用户可以登陆
1.我们将用户ww添加进永久黑名单:
在这里插入图片描述
在这里插入图片描述
此时,ww不能登录:
在这里插入图片描述
2.用户白名单的设定

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO

限制所有用户登录后,此时/etc/vsftpd/user_list此名单成为白名单,仅有此名单中的用户可以登录:
在这里插入图片描述
将root在永久黑名单中删除,并且添加到临时黑名单,此时root可以正常登录:
在这里插入图片描述
16.匿名用户下载:

anon_world_readable_only=YES|NO 
	=YES:文件other位具有读权限时,才允许下载,仅仅只是所有人为ftp且有读权限是无法下载的,必须other有r,才可以下载
    =NO:只要ftp用户对此文件具有读权限即可下载

首先,我们可以看到,在pub/目录下有test文件,此文件权限为640,在other无r权限:
在这里插入图片描述
首先不做任何更改,下载此文件,会出现550错误:
在这里插入图片描述
添加参数如下:
在这里插入图片描述
此时可以下载:
在这里插入图片描述
17.虚拟用户的配置:
虚拟用户是不存在于本机上的用户,由于在实际应用中,服务器上不可能直接注册上亿用户,因此我们作为用户,在服务器中是以虚拟用户进行存储的
1).虚拟用户的建立:
#在/etc/vsftpd/此目录下新建配置文件userlist:
在这里插入图片描述
#添加虚拟用户账号与密码,格式如下:
在这里插入图片描述
#将明文的用户数据文件加密:

db_load -T -t hash -f loginusers loginusers.db
		##-T:transfer转换
		##-t:hash加密
		##-f:
		##loginusers:源文件
		##loginusers.db:加密后的文件,.db后缀

我们可以看到会生成后缀为.db的文件:
在这里插入图片描述
#进行用户认证管理:
进行虚拟用户认证管理,在/etc/pam.d/目录下新建虚拟用户的认证管理文件:

vim /etc/pam.d/user
 1 account       required        pam_userdb.so   db=/etc/vsftpd/userlist
    帐号	  		 必须验证成功       使用此插件	       验证此文件
 2 auth          required        pam_userdb.so   db=/etc/vsftpd/userlist
    密码			必须验证成功 		   使用此插件  	   验证此文件

如下:
在这里插入图片描述
#修改配置文件:

 vim /etc/vsftpd/vsftpd.conf 
 pam_service_name=user	##user就是刚刚新建的文件
 guest_enable=YES		##虚拟用户允许登陆

如下:
在这里插入图片描述
以上配置完成后,再使用虚拟用户user1,user2,user3进行ftp登陆,我们可以看到此时虚拟用户进入匿名用户登陆时的家目录:/var/ftp:
在这里插入图片描述
2).虚拟用户家目录更改
vim /etc/vsftpd/vsftpd.conf
guest_username=ww ##更改虚拟用户家目录为用户ww的家目录
对配置文件做以下更改:
在这里插入图片描述

 chmod  555 ww  ##将ww的家目录权限更改,使其他人可读可执行,同时在ww家目录下新建一个file

在这里插入图片描述
在这里插入图片描述
此时,使用虚拟用户user3登陆系统,我们进入的是用户ww的家目录:
在这里插入图片描述
3).虚拟用户权限区分:
我们可以看到,在未进行设置之前,所有用户进入同一个家目录,拥有相同的权限,不能对具有不同权限的用户进行区分,那么如何进行区分:
#新建虚拟用户的对应目录:
在这里插入图片描述
在这里插入图片描述
#使不同的用户登陆ftp时进入不同的家目录:

 vim vsftpd.conf 
 local_root=/ftphome/$USER	##将虚拟用户的家目录变为/ftphome/$USER
 user_sub_token=$USER	##使$USER可以被识别
						## $USER在vim中不能被识别,因此需要使用命令使它被识别

在这里插入图片描述
此时我们可以看到,使用虚拟用户user3登陆,进入的是user3的家目录:/ftphome/user3:
在这里插入图片描述
#使不同的用户具有不同的权限:

 vim vsftpd.conf
 user_config_dir=/etc/vsftpd/user_conf
	##进行此配置后,系统根据输入的用户名,在此配置文件中进行参数设置,会使不同的用户具有不同的权限

对配置文件进行配置:
在这里插入图片描述
新建用户user1的配置目录与文件:
在这里插入图片描述
在这里插入图片描述
在用户user1的配置文件中添加,允许匿名用户上传(而在ftp配置文件中不进行任何修改):
在这里插入图片描述
此时我们可以看到,用户user1可以上传文件而用户user2不能:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值