本实验基于VMware软件实验,使用centos7、windows7两台终端,注意设备的相互通信,内容分为root用户指定根目录以及非root用户指定目录,
一、ROOT指定根目录
进行安装vsftpd服务之前,先把所有可能导致的安全问题解决掉,由于是实验环境,所以选择关闭防火墙
setenforce 0 #关闭安全保护
systemctl stop firewalld.service #关闭防火墙
yum install vsftpd -y #安装vsftpd服务
默认安装vsftpd后root用户会被禁用,进入/etc/vsftpd/将user_list和ftpusers文件的root注释掉
ftpusers :列出在 FTP 服务器上禁止登录的用户列表。这些用户将无法使用 FTP 服务登录到服务器。
user_list :限制允许或者禁止登录 FTP 服务器的用户。通过这个文件,指定哪些用户可以登录 FTP 服务器,哪些用户不可以登录。
编辑配置文件vi /etc/vsftpd/vsftpd.conf,在文件的末尾加上一句
local_root=/ #指定root用户为根目录
重启服务
systemctl restart vsftpd #重启服务
此时在windows上验证是否成功,伙伴应该都知道,默认安装vsftpd后会在/var/ftp下默认创建一个pub目录共享文件夹,在该目录下创建文件夹也会被共享,右键登录
二、非ROOT用户指定根目录
想要为非root用户指定其他目录作为家目录,需要将配置文件下的最后一句删除掉或注释掉,就是刚刚教大家如何指定ROOT根目录添加的那一句话,因为当使用user_sub_token,local_root设置将会被忽略,而用户的家目录由user_sub_token
和 /path/to/user/directory/
的组合来确定。
创建两个用户并同时设置家目录,便于等会儿指定
useradd -d /var/ftp/vip vip #var/ftp/vip为家目录 创建vip用户
useradd -d /var/ftp/svip svip #var/ftp/svip为家目录 创建svip用户
为用户设置初始密码
passwd vip #设定初始密码
passwd svip #设定初始密码
编辑配置文件 vi /etc/vsftpd/vsftpd.conf,将local_root删除掉并添加如下两句话
user_sub_token=$USER
local_root=/var/ftp/$USER #这里为刚刚创建用户的家目录,$USER不可修改
chmod_enable=YES
allow_writeable_chroot=YES #同时开启root用户指定根目录,需要在配置文件user_list和ftpusers解锁root
在两个用户的家目录下分别创建两个用户文件
touch /var/ftp/vip/vip.txt #vip用户的文件
touch /var/ftp/svip/svip.txt #svip的用户文件
重启服务
systemctl restart vsftpd
windows验证
三、允许匿名用户上传与下载
这个实验是在仅安装FTP服务并未做配置时测速,安装好FTP服务器之后,启用匿名用户访问FTP,配置文件/etc/vsftpd/vsftpd.conf中查找并确保以下配置项为 "YES",以允许匿名用户访问 FTP 服务
anonymous_enable=YES
配置匿名访问权限,添加或编辑配置文件中的以下配置项,以允许匿名用户上传文件,
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
设置匿名用户目录,需要限制匿名用户仅能上传到特定目录,可以添加以下配置项指定匿名用户的根目录
anon_root=/path/to/anonymous/directory
将 /path/to/anonymous/directory
替换为你希望匿名用户上传文件的目录路径
请注意!!需要给共享目录的文件夹足够的权限,否则还是不可上传文件,例如默认ftp共享目录为/var/ftp/pub,改成/var/ftp/并给pub足够的权限
完成后重启FTP服务器即可
实验到此为止,如果对大家有帮助请点个赞,大家有问题可以留言至评论区