在ubuntu下安装了vsftpd,结果用客户端连接ftp后提示 500 OOPS:cannot change directory: /home/xxx
问题很奇怪,百度了一下,发现可能是由于启用了SELinux引起的问题

vi /etc/sysconfig/selinux
将 SELINUX=enforcing 修改为SELINUX=disabled, 关闭SELINUX后, 重新启动机器,问题解决。

网上查找一下有使用命令

setsebool ftpd_disable_trans 1
将SELINUX中关于ftp服务传输控制的默认设置修改后再将vsftp服务重新启动一下

/sbin/service vsftpd restart
也可以解决问题,貌似这种方法更好,因为保留了selinux其他方面的安全特性。

注:打开了SELINUX安全控制后一些服务的行为会受影响。
可以到 /selinux/booleans目录下看selinux都对哪些服务的功能做了控制,根据需要可以用setsebool命令修改相关选项的boolean值,使selinux相对应的控制项起作用或不起作用。

可以使用sestatus命令查看selinux的运行状态。

结果发现跟上面的没有任何关系,原来是UBUNTU 使用adduser命令添加用户后,没有自动的创建用户主目录,当然无法转到用户的目录下面了。