500 OOPS: cannot change directory: /home/user/public_html, VSFTPD error

You can check this link. It worked for me.

Make sure that the user and group permissions for the account and the home directory match. For example, if you are logging in as:

account:x:521:500::/some/directory:/sbin/nologin

then make sure that the home directory defined for “account” is at least readable and executable by user 521 and group 500.


That error is generated because of Selinux. Please do the following actions:

[root@sun02 vsftpd]# getenforce
    Enforcing

[root@sun02 vsftpd]# getsebool -a | grep ftp
    allow_ftpd_anon_write –> off
    allow_ftpd_full_access –> off
    allow_ftpd_use_cifs –> off
    allow_ftpd_use_nfs –> off
    allow_tftp_anon_write –> off
    ftp_home_dir –> off     # We need to change this to on - see next command.
    ftpd_disable_trans –> off
    ftpd_is_daemon –> on
    httpd_enable_ftp_server –> off
    tftpd_disable_trans –> off

[root@sun02 vsftpd]# setsebool -P ftp_home_dir on

This is all that u want to need.

Good Luck!

source: Copied and pasted from the above link. Credits to @Jaime M. of http://blog.arithm.com/