VsFTP出现500 OOPS: cannot change directory的解决办法【用匿名用户或者ftp用户登录报错】

文章来源:http://blog.chinaunix.net/uid-24917554-id-1644947.html


在linux中搭建ftp服务后使用ftp查看,只能看见ftp目录中的pub文件夹,看不到其他文件夹,使用ls -ld查看两个文件夹的权限设置是一模一样的,怎么会出现这种状况呢,网上找资料原来是selinux阻止了对其他目录的访问了,setsebool -P ftpd_disable_trans 1 ,让selinux 开放对ftp的访问,并vi /etc/vsftpd/vsftpd.conf 在最后加上一行anon_root=/var/ftp 将ftp匿名访问的默认路径设置到/var/ftp下,将所有要访问的资源mount到这个目录下,service vsftpd restart ,再进ftp查看,这次不止显示pub文件夹了。

原文地址:http://dingxianzhi88.blog.163.com/blog/static/381673820091514843699/

VsFTP出现500 OOPS: cannot change directory的解决办法
cannot change directory:/home/***
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died

解决方法:
在终端输入命令:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!

在安装完vsftp服务后登陆时可能遇到cannot change directory后面是登陆者的目录的错误。这是因为SE设置的关闭了ftp的原因。 使用命令 getsebool ftpd_disable_trans 可以查看当前的状态如果不是on 那么是输入命令 setsebool ftpd_disable_trans 1 当然也可以加入-P参数 以便不需要每次开机都输入这个命令 setsebool -P ftpd_disable_trans 1 同理如果smb服务也遇到相同的问题

在安装完vsftp服务后登陆时可能遇到cannot change directory后面是登陆者的目录的错误。这是因为SE设置的关闭了ftp的原因。

使用命令

getsebool ftpd_disable_trans

可以查看当前的状态如果不是on

那么是输入命令

setsebool ftpd_disable_trans 1

当然也可以加入-P参数 以便不需要每次开机都输入这个命令

setsebool -P ftpd_disable_trans 1

service vsftpd restart

同理 如果smb服务也遇到相同的问题 ,也可以这么做。

setsebool -P samba_enable_home_dirs=1

selinux的问题也可以使用 管理工具中的 selinux management 来调整相关设置。

FTP登录时错误信息:
500 OOPS: cannot change directory:/home/xxxxLogin failed.
421 Service not available, remote server has closed connection
开始以为是权限问题,将home/xxxx chmod为777,vsftpd配置文件全开依然不行。
百度一下查处原因:
==================================
I found information at the NSA that indicates you can disable SELinux protection of the ftp daemon.
setsebool -P ftpd_disable_trans 1
This seems a bit drastic. It certainly works for now though.
==================================
原来是新装系统RHEL5 增强的系统安全SELinux在作怪,关掉SELinux对FTP Daemon的保护就OK了:
# setsebool ftpd_disable_trans 1
# service vsftpd restart


你可能感兴趣的:(VsFTP出现500 OOPS: cannot change directory的解决办法【用匿名用户或者ftp用户登录报错】)