linux中搭建ftp以root用户连接时500 OOPS: cannot change directory:/root报错
RHEL5 中配置好vsftp后,开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现 "500 OOPS:cannot change directory:/root" 错误,如何解决呢?
问题终于有了解决的方案。
言归正传,在开了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 ,然后重启。