If you find yourself with the ever-so-peculiar 500 OOPS error from vsftpd when you attempt to login over SSH, there could be a few different things at play. Generally, this is the type of error you will get:
500 OOPS: cannot change directory:/home/someuser 500 OOPS: child died
You can search for a solution in this order:
Home Directory
Does the user's home directory even exist? Check /etc/passwd for the current home directory for the user and see what's set:
# grep someuser /etc/passwd someuser:x:10001:2524::/var/www/someuser:/bin/bash
In this case, does /var/www/someuser exist? If it doesn't, fix that and then move onto the next solution if you're still having problems.
File/Directory Permissions
Be sure that the user that you are logging in as actually has permissions to be in the directory. This affects users that have home directories of /var/www/html because the execute bit normally isn't set for the world on /var/www or /var/www/html. Make sure that the appropriate permissions and ownerships are set, and this should help eliminate the issue.
SELINUX
If SELINUX is rearing its ugly head on the server, this can be a problem. Check your current SELINUX status and disable it if necessary:
# setenforce Enforcing # setenforce 0
Try to login over FTP again and you should have a success. If you want to turn off SELINUX entirely, adjust /etc/sysconfig/selinux (RHEL4) or /etc/selinux/config (RHEL5).












here is another fix for the ftp issue with home directories, in case you cant turn selinux off:
setsebool -P ftp_home_dir 1
service vsftpd restart
Alright, so this is what I did:
#setup -> Firewall Configuration -> Disabled SELinux and then it worked!
Nice it worked.. thanks
Running Fedora 8 (following book) -->
yum install -y vsftpd
chkconfig vsftpd on
vi /etc/vsftpd/user_list
-----
#my allowed users
user1
user2
-----
vi /etc/vsftpd/vsftpd.conf
-----
#this setting is said to allow only users listed in the /etc/vsftpd/user_list
userlist_deny=no
#default is yes
-----
ftp localhost
anonymous
#no password just hit enter
login successful
-----
ftp localhost
user1
user1's password
#get the "500 oops error"
setenforce
#selinux is on
setenforce 0
#selinux is off
ftp localhost
user1
user1 password
!!! Now I am in !!!! Thank you!!!
sorry somewhere in there I started the vsftpd service....
^__^
I have tried to pass error 500 : oops : ...not change directory /home/khanhqhi
And i resolved it by
# setenforce
Enforcing
# setenforce 0
Thanks so much
#setenforce 0
It works,
Thanks
Where does one type in that setenforce command? Thanks!
Jenny - Log into your server via ssh, become root (su -), and then run 'setenforce 0'.