linux中搭建ftp以root用户连接时500 OOPS: cannot change directory:/root报错

 RHEL5 中配置好vsftp后,开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现 "500 OOPS:cannot change directory:/root" 错误,如何解决呢?
  
问题终于有了解决的方案。

    如何开启root用户的上传权限,如何关闭系统的防火墙,我就不再多废话了,不懂的朋友google去。

言归正传,在开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现 "500 OOPS:cannot change directory:/root" 错误,如何解决呢?
 

 (SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux® 上最杰出的新安全子系统。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到)

解决:

1、 查看 SELinux 的状态:  sestatus -b | grep ftp      确切地说,只是查看了ftp的状态。

2、 在出现的结果中可以看到  ftp_home_dir        off 

                            tftpd_disable_trans   off

之类。我们现在只要把其中之一设置为on就可以啦。

3、 setsebool -P ftpd_disable_trans on      或者 setsebool -P  ftp_home_dir  on 

4、 重启vsftpd:  service vsftpd restart

 但是我的虚拟机上的SElinux信息中没有ftpd_disable_trans ,于是我敲了 setsebool ftp_home_dir on就好了。

按照上面的方法:当输入 setsebool -P ftp_home_dir on 时报错,错误如下 :

Usage:  setsebool [ -P ] boolean value | bool1=val1 bool2=val2...

我用man方法看一下setsebool文 档:

NAME
       setsebool - set SELinux boolean value
SYNOPSIS
       setsebool [ -P ] boolean value | bool1=val1 bool2=val2 ...

输入 setsebool ftp_home_dir on即可完成更改。

再重启ftp服务,再试试就可以了。

 

如果对于selinux不是很熟悉或者问题无法得 到解决,关闭selinux,也可让vsftp正常使用.

关闭方法:修改/etc/selinux/config文件中的 SELINUX=”" 为 disabled ,然后重启。