一、安装ftp服务

1.挂载镜像,设备状态全选,在选择iso镜像文件

桌面出现光盘图标为挂载成功

 

在终端打开输入以下命令 

mount /dev/sr0 /mnt  

出现下图为成功

2.配置yum源(方便解决依赖关系)  输入以下命令   

cd /etc/yum.repos.d

rm -rf *

vim 1.repo  

1.repo的内容

[name]

baseurl=file:///mnt

enable=1

gpgcheck=0

3.安装vsftpd(服务器)和ftp(客户端)

yum install vsftpd*  -y

yum install ftp -y

4.重启ftp服务

systemctl restart vsftpd

5.登录,用户名为ftp,密码为空

ftp 127.0.0.1

安装时可能出现进程已锁定,在睡眠中

有以下两种解决方法

(1)删除

rm -rf   /var/run/yum.pid

(2)删进程,ps查看进程,找到对应的进行号,进程需要杀两次

kill -9 pid号

ps

kill -9 pid号

二、ftp的配置文件

配置文件位置:/etc/vsftpd/vsftpd.conf

anonymous_enable=YES   #是否开启匿名用户允许访问

local_enable=YES     #是否允许本地用户登录FTP

write_enable=YES     #是否允许本地用户写入,开启允许上传的

 anon_upload_enable=YES    #是否允许匿名用户上传

anon_mkdir_write_enable=YES    #是否允许匿名用户写入

anon_other_write_enable=YES    #是否允许其他用户写入

chroot_local_user=YES  #是否开启锁定目录,不能切换到其他目录

chroot_list_enable=YES    #是否开启锁定目录的用户列表,和上面的只能开一个(冲突)

chroot_list_file=/etc/user.txt   #用户锁定目录列表文件的位置

pam_service_name=vsftpd    #设置PAM的名称

userlist_enable=YES    #设置用户已列表,允许或是禁止

tcp_wrappers=YES    #控制主机访问,检查/etc/hosts.allow  hosts.deny的配置达到防火墙作用

anon_root=/c            #虚拟用户家目录

local_root=/d            #本地,虚拟用户家目录

三、ftp的三种用户模式

ftp的三种用户模式分为匿名用户,本地用户,虚拟用户

安装ftp服务端默认情况

(1)允许匿名用户访问  匿名登录目录为/var/ftp 不能切到换其他目录,pwd命名查看的目录是/,这个目录是/var/ftp,不是linux
根目录/,只有读和下载,文件能否写,是要看权限的,要看两层门,最外面的一层门是配置文件的权限,第二层是文件本身的权限

目录为锁死状态

(2)本地用户 登录的目录为自己的家目录 可以切换到其他目录,是不安全的,只有读和下载自己的,自己的家目录是锁不上的,就是还可以切换目录

目录未锁死

当开启selinux和防火墙时给予文件夹/var/ftp
777是不能写的,配置文件加上也不能创建目录,当关闭setenforce就不能登录不上,所以说有一个/var/ftp/pub目录,把这个文件给予权限

anon local需要新建家目录,pam文件相对路劲文件位置需要改ETC/pam.d/vir新建目录

登录时目录使用的是本地的家目录

在配置权限时就是匿名了

1.匿名用户模式(默认)

文件可写可上传

(1)修改配置文件

修改配置文件时需要注意有的地方就不能直接添加,要用原来的

anon_upload_enable=YES    

anon_mkdir_write_enable=YES    

anon_other_write_enable=YES    

(3)修改文件夹的权限

chown -Rf ftp /var/ftp/pub/      

(2)重启服务,关闭防火墙和sexlinux

systemctl restart vsftpd

systemctl stop firewalld

setenforce 0

(3)验证

2.本地用户模式

查看是否local_enable开启

(1)新建用户

useradd  z3 

passwd z3

(2)验证

3.虚拟用户模式

虚拟用户是禁止登陆操作系统的,是假的用户,但借助的是本地用户,只是创建用户时创建的是禁止登陆的用户,虚拟用户(假用户)没有登录目录,需要指定登录上来的目录,权限用的是虚拟用户的权限

(1)创建用户登陆的文件,奇数行账户名、偶数行是密码,添加几个用户

 touch  /var/ftpuser.txt

(2)用于转化普通文本为vsftpd识别的数据库文件

db_load -T -t hash -f /var/ftpuser.txt /etc/vsftpd/ftpuser.db

(3)新建一个用户virt,指定用户家目录/xuni(不能先创建),且禁止登录

 useradd -d /xuni -s /sbin/nologin virt

(4)更改文件夹权限

chmod -Rf 755 /xuni

(5)修改认证的文件,不能使用原有的,不成功

vim /etc/pam.d/vir

auth required pam_userdb.so db=/etc/vsftpd/ftpuser

account required pam_userdb.so db=/etc/vsftpd/ftpuser

(6)修改vsftpd配置文件,在最后添加(直接覆盖),不知为什么改容易出现重启失败

pam_service_name=vir
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virt
allow_writeable_chroot=YES

pam_service_name=vir        #指定PAM认证文件,相对路径(/etc/pam.d)

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES        #开启虚拟用户

guest_username=virt        #指定虚拟用户账号

allow_writeable_chroot=YES      #如果用户被限制只能在其家目录,允许用户可以对家目录写入数据

(7)重启服务,关闭防火墙

systemctl restart vsftpd

systemctl stop firewalld

setenforce 0

(8)验证

不同的虚拟用户想要设置登陆目录,用local_root设置

针对不同的虚拟用户设置不同的权限,在分别在下面的目录创/etc/vsftpd/virtual_user_dir
建用户名子目录,写入对应的权限(用的是虚拟用户权限)

修改主配置文件

user_config_dir=/etc/vsftpd/virtual_user_dir

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信