云服务器上搭建FTP系统之踩过的坑和解决办法

提纲:
1、安装和修改配置文件
2、添加安全组(开放端口21)
3、建立用户和设置权限

在服务器端安装vsftpd和修改vsftpd.conf配置文件:
yum -y install vsftpd
sudo vi /etc/vsftpd/vsftpd.conf
核对修改如下事项:
anonymous_enable=NO
local_enable=YES
write_enable=YES
#uncomment this line to limit the users to their home directories.
chroot_local_user=YES

建立ftp用户和用户目录:
mkdir /ftp
useradd -d /ftp/someone someone
passwd someone

启动和查看vsftpd:
systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd

在client端,需要安装ftp:
yum -y install ftp

测试:
ftp your-server-ip-address

显示无法连接,但是这个IP地址可以ping通,一般显示端口没有被设置开放。需要开启端口21,在云服务器控制台进行操作:实例>管理>本实例安全组>配置规则>快速创建规则:
规则方向:入方向
自定义端口:勾选TCP 填写21/21
授权对象:填写 0.0.0.0/0

再测试连接,仍然报错如下:
Error message “500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
Add "allow_writeable_chroot=YES" to /etc/vsftpd/vsftpd.conf 然后重启ftp就可以正常工作了。

总结:
在stackoverflow提问回答系统和csdn博客可以得到很多帮助,不过话又说回来,这个不太复杂的事情有多人踩坑里,显然还是教程写的不够完备,在摸索中学习和进步,这也是获得经验所必须付出的时间成本。

参考文献:
https://stackoverflow.com/questions/16102996/error-message-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroo
https://blog.csdn.net/m0_37355951/article/details/76854141