错误情景1:
linux-500 OOPS: cannot change directory:/root,什么原因呢,上网查了一下,主要原因还是在于系统启用了SELinux设置的缘故。
系统安装时,默认SELinux设置为强制,如果你没有修改。
故障排除:
检查SELinux设置,进入系统-管理-安全级别和防火墙,果然SELinux设置为强制。
方法1:
直接设置SELinux设置为【禁用】;
重启vsftpd: service vsftpd restart
方法2:
保留SELinux设置为【强制】或【启用】
查看 SELinux 的状态: sestatus -b | grep ftp 确切地说,只是查看了ftp的状态。
在出现的结果中可以看到 ftp_home_dir off
tftpd_disable_trans off
则需要将上述2个状态为off的值,将其之一设置为on即可。
执行命令:setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on
重启vsftpd: service vsftpd restart
错误情景2:
上传时出现 553: could not create file
解决办法:
1、设置selinux
vi /etc/sysconfig/selinux
将其中的SELINUX=enforcing改为SELINUX=disabled
2、设置如下
setsebool -P allow_ftpd_full_access 1
如果连接超时:
2、在最下面添加以下信息
pasv_enable=YES #开启被动模式
pasv_min_port=4000 #随机最小端口
pasv_max_port=5000 #随机最大端口
4、配置iptables开放4000到5000端口
vi /etc/sysconfig/iptables 在*filter下加入下
-A OUTPUT -p tcp --sport 4000:5000 -j ACCEPT
-A INPUT -p tcp --dport 4000:5000 -j ACCEPT
centos需要创建vsftpd 用户和 vsftp组