前言:
本操作可用于建立虚拟与主机的文件传输,替代使用命令的scp操作。
匿名用户不代表不要账号。安装vsftpd服务时会自动创建名为“ftp”的用户。
一.关闭防火墙以及SELinux
1.关闭防火墙
systemctl stop firewalld
2.或者添加防火墙放行规则
firwall-cmd --permanent --zone=public --add-service=ftp
firwall-cmd --reload
每次使用FTP服务前务必保证防火墙的关闭状态或者在防火墙规则中放行FTP服务。
3.编辑关闭SElinux
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
#将SELINUX=enforcing改为SELINUX=disabled
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
//使用setenforce 0使SElinux关闭立刻生效
setenforce 0
二.安装FTP服务(推荐使用yum安装,rpm需要本地rpm包以及查询该包的版本具体名称才能安装)
yum install vsftpd
或者
rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm
ftp的rpm包具体名称使用rpm -qa | grep vsftpd查询。
三.编辑vsftpd.conf文件
vi /etc/vsftpd/vsftpd.conf
//取消如下几行注释:
//允许匿名访问
anonymous_enable=YES
//允许匿名用户上传文件
anon_upload_enable=YES
//允许匿名用户创建文件写入文件
anon_mkdir_write_enable=YES
//不使用vsftpd的user列表
userlist_enable=NO
//最后几行添加如下配置:
//匿名用户的访问目录
anon_root=/ftp
//匿名用户访问不弹出登录账号密码框
no_anon_password=YES
修改完成配置后启动ftp服务器。
systemctl start vsftpd
//添加到自启项目中
systemctl enable vsftpd
查看ftp服务启动状态为正常
四.使用windows的资源管理器进行访问
PS:这一步中可能会出现很多的问题,需要反复修改切换第三步中匿名用户的访问目录配置,并多次重启ftp服务,修改访问目录的权限才能上传下载文件。
当可以正常访问时会直接进入预先设置的匿名用户访问目录/ftp。
这里我修改了访问的目录为data并重启ftp服务后,windows显示为没有访问权限。
每当windows提示无法没有权限时,我们都可以使用以下方法尝试解决。
首先,我们需要先调整以下/data目录的权限(我理解为刷新目录的权限)。
//先设置权限为755就可以先访问data目录了,但是没有上传文件的到此目录的权限。
chmod 755 /data
//所以再次设置权限为777,这时候就可以进行上传和下载操作了。
chmod 777 /data
我尝试过把目录的所属权赋予ftp用户,但是发现这个问题依然无法避免。有知道怎么解决的dalao,可以在评论区提出解决方案,或者指出我在操作时的问题。