# centos vsftp 500 OOPS: cannot change directory:/home/ftp
他的系统是CentOS,是RH派系的。我把vsftpd安装配置好了,以为大功告成,但客户端访问提示如下错误:
`500 OOPS: cannot change directory:/home/ftp`
原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
//查看SELinux设置
~~~
# getsebool -a|grep ftp
ftpd_disable_trans --> off
或者
ftp_home_dir-->off
~~~
解决方法:
~~~
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
~~~
//再次查看当前状态是否是on的状态
~~~
# getsebool -a|grep ftp
ftpd_disable_trans --> on
或者
ftp_home_dir-->on
~~~
//setsebool使用-P参数,无需每次开机都输入这个命令
~~~
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
# service vsftpd restart
~~~
有关selinux的配置
如关闭,仅仅警告,强制等等 需要编辑`/etc/sysconfig/selinux` 默认是强制。
## centos vsftpd 出现553 Could not create file
1。首先确保你的FTP目录 文件是可写的,ls -l 可以查看 如果不是则 chmod 777 ftpd目录
2。使用命令getsebool -a|grep ftp 查看
ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on
如果不是则使用
setsebool allow_ftpd_full_access on
setsebool ftpd_disable_trans on
setsebool ftp_home_dir on
3。一般这样就可以了,如果还不行请查看配置文件,如果配置文件没有问题可以先远程连接服务器在FTP目录下随便创建一个文件,使用ftp刷新下目录会恢复正常(这个情况我遇到过)。