500 OOPS error from vsftpd

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).

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Printed from: http://rackerhacker.com/2007/06/14/500-oops-error-from-vsftpd/ .
© Major Hayden 2010.

10 Comments   »

  • helloinfidels says:

    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

  • Bob says:

    Alright, so this is what I did:

    #setup -> Firewall Configuration -> Disabled SELinux and then it worked!

  • Mohan says:

    Nice it worked.. thanks

  • Joe says:

    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!!!

  • Joe says:

    sorry somewhere in there I started the vsftpd service....
    ^__^

  • ldk.aloneforever says:

    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

  • jerson says:

    #setenforce 0
    It works,

    Thanks

  • Jenny says:

    Where does one type in that setenforce command? Thanks!

  • major says:

    Jenny - Log into your server via ssh, become root (su -), and then run 'setenforce 0'.

  • Sharma says:

    Thanks.. this helped me out..

Trackbacks/Pingbacks

  1. Steven Xiao’s Tech Blog » Blog Archive » 500 OOPS error from vsftpd

RSS feed for comments on this post , TrackBack URI

Leave a Reply