卸载已经安装的vsftpd(无安装过跳过)
- 查看是否已经安装vsftpd
命令1: # rpm -q vsftpd
命令2:# rpm -e vsftpd-3.0.2-25.el7.x86_64
![](https://img.haomeiwen.com/i20524072/f643a5a5d0c5c3a0.png)
全局安装
命令:# yum -y install vsftpd
![](https://img.haomeiwen.com/i20524072/d99fd6cf559b18c1.png)
设置开机启动
命令:# systemctl enable vsftpd
启动vsftpd服务器
命令:# systemctl start vsftpd.service
![](https://img.haomeiwen.com/i20524072/95a2e32a8aeefc10.png)
开放21端口
命令1:# firewall-cmd --zone=public --add-port=21/tcp --permanent
命令2:# firewall-cmd --permanent --zone=public --add-service=ftp
命令3:# firewall-cmd --reload
![](https://img.haomeiwen.com/i20524072/79b37c6cd71babd3.png)
添加FTP用户
-
表示新增一个名为ftpuser(用户名),
-
且指定上传目录在/home/captain下
命令1:# useradd -g root -d /home/captain -s /sbin/nologin ftpuser
![](https://img.haomeiwen.com/i20524072/fecc1fe9170028f5.png)
备注:如果后期想变更此用户的上传目录到
(/run/media/root/xxx/wwwroot/xxx.org),
请使用下面的命令:
命令:# usermod -d /run/media/root/captain/wwwroot/xxx.org ftpuser
设置用户密码**
命令: # passwd ftpuser
![](https://img.haomeiwen.com/i20524072/0a7392074a0e61b7.png)
输入怎么想设置的密码则可。
配置selinux允许ftp访问home和外网访问
命令1:# setsebool -P allow_ftpd_full_access on
命令2:# setsebool -P ftp_home_dir on
![](https://img.haomeiwen.com/i20524072/58754cf9627a5cf2.png)
设置权限(此用户可以访问整个主机目录,后面备注设置权限问题)
命令:# chown -R ftpuser:root /home/captain
修改VSFTP配置文件,禁用匿名登录
- 设置anonymous_enable=NO
命令1: # cd /etc/vsftpd
命令2: # vim vsftpd.conf
![](https://img.haomeiwen.com/i20524072/4f074ebb6121b68b.png)
重启vsftpd服务器
命令:# systemctl restart vsftpd.service
补充说明
(1)当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
(2)从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,
则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录
的写权限,注意把目录替换成你自己的。
或者你可以在vsftpd的配置文件中增加下列一项:
allow_writeable_chroot=YES
(3)使用cmd命令容器发生
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list错误
解决:修改vsftpd.conf配置文件,注释以下内容
![](https://img.haomeiwen.com/i20524072/bd120036685dbdf9.png)
(4)本地使用ftpClient调试是发生
java.net.SocketException: Connection reset异常
解决:在本地电脑执行以下命令
netsh advfirewall set global StatefulFTP disable
![](https://img.haomeiwen.com/i20524072/f8f15f210e306599.png)
vsftpd常用命令
# 启动服务
systemctl start vsftpd.service
# 停止服务
systemctl stop vsftpd.service
# 重启服务
systemctl restart vsftpd.service
# 服务状态查看
systemctl status vsftpd.service
# 设置开机启动
systemctl enable vsftpd
![](https://img.haomeiwen.com/i20524072/20d31a6070b9f2a4.gif)
声明:原创,欢迎转载~! 记得点个关注我哦~!
网友评论