一、搭建server端
1、安装vsftpd
yum -y install vsftpd
2、启动vsftpd服务
systemctl start vsftpd
systemctl enable vsftpd #设置开机自启
3、设置匿名用户访问下载并上传(根据情况定义是否让匿名用户有修改的权限)
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES #设置匿名用户可以上传
anon_mkdir_write_enbale=YES #匿名用户可以创建或删除目录
anon_other_write_enable=YES #匿名用户可以对目录进行操作
#local_root=/home/ #这个可以设置指定共享目录,我们匿名用户登陆时,使用默认即可
4、关闭防火墙与selinux
systemctl stop firewalld #停止防火墙
systemctl disable firewalld #永久关闭防火墙
getenforce #获取selinux状态,enforcing开启状态 permissive临时关闭状态 disabled永久关闭状态
setenforce 0 #临时关闭
#永久关闭需要修改配置文件
vim /etc/selinux/config #修改selinux配置文件
# 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=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
5、设置权限归属
vsftpd 默认共享文件在/var/ftp
设置ftp目录下的文件归属为ftp
chown /var/ftp/* -R
注:ftp目录的归属依旧为root,不需要修改
6、重启vsftpd
systemctl restart vsftpd
7、测试
打开Windows文件管理器,输入ftp://服务器IP,回车,即可看到/var/ftp/下的文件
注:匿名登录文件共享,有一定的风险安全,尤其在给了文件操作权限后,所以我们下面来操作一下如何设置只能对应的用户来访问
8、设置指定用户登录vsftpd服务共享
vim /etc/vsftpd/vsftpd.conf
#注释或删除掉所有匿名设置选项
#anon_mkdir_write_enbale=YES #匿名用户可以创建或删除目录
#anon_other_write_enable=YES #匿名用户可以对目录进行操作
#local_root=/home/ #这个可以设置指定共享目录,我们匿名用户登陆时,使用默认即可
#增加以下内容
anon_upload_enable=NO #设置匿名用户不可登录
chroot_list_enable=YES #启用限制登陆用户在主目录里面
chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
allow_writeable_chroot=YES #允许限制的用户对目录有写权限
local_max_rate=0 #不设置下载上传速率
注:配置文件中不指明用户默认的共享文件目录,默认谁登录,就在谁的家目录下
9、创建共享用户
useradd jack
useradd tom
passwd jack
passwd tom
将用户加入vsftpd的用户配置文件
vim /etc/vsftpd/chroot_list
jack
tom
重启vsftpd服务
systemctl restart vsftpd
10、验证
在jack用户与tom用户的加目录下分别写测试文件,例:
echo "tom.txt" /home/tom
echo "jack.txt" /home/jack
打开windows文件管理器输入:ftp://vsftpd服务IP
注:如果要多用户访问同一个目录下的文件,又不用匿名登录,只需要在vsftpd配置文件中怎加指定路径即可
vim /etc/vsftpd/vsftpd.conf
local_root=/mnt/vsftpd/
/mnt/vsftpd为共享文件目录,可自定义指定,但不要在/tmp /root 等一些特殊文件目录下指定