Sign up ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

My question is what settings do I need to change and/or commands to run to allow me to log into my vsftpd system?

I am getting this error, when I login using ftp instead of sftp:

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
500 OOPS: cannot change directory:/home/dbadmin
Login failed.

This works when logging in using sftp@, but my server is behind a firewall, and I need to be able to login using ftp as well as sftp.

I have been looking at quite a few posts about the "OOPS" error but so far have had no luck logging in.

Here is some information about my system and settings:

I am running CentOS 6.4.

iptables and ip6tables are stopped and disabled.

My home directory is protected 700, and I have tried 750, just to see if that made a difference. It did not.

Here are the active lines in /etc/vsftpd/vsftpd.conf


My login name is not in user_list.

share|improve this question
Even i faced the same issue.. >Try changing the access to 775, it worked for me. – user137438 Oct 7 at 12:55
In case the problem still occurs even though you have disabled selinux, please recheck permissions of your directory. Is your ftp user really have rights in that folder? or Is any setgid bit set at parent of that folder? A 's' bit at parent folder might cause a problem, if you try to create a new folder beneath. – Chatchai Mao Oct 8 at 8:08

4 Answers 4

up vote 4 down vote accepted

Run this one command, no need to restart any service & server:

# setenforce 0

To check SELinux status :

# getenforce


edit the file /etc/sysconfig/selinux to include


Doing so will require a reboot.

share|improve this answer
It's interesting I got a drive-by down vote for pretty much the same answer a year and a half ago. – octopusgrabbus Feb 18 at 7:32

Although disabling SELinux by SELINUX=disabled will solve the problem this would not be advisable. You can enable ftp user to access his home directory by configuring SELinux boolean value ftp_home_dir by running the following command:

setsebool -P ftp_home_dir=1
share|improve this answer
Are the back ticks necessary, or result of inline and block formatting of code/commands? – Anthon Oct 31 '13 at 6:48
No, the backticks are not necessary. – jamieb Nov 21 '14 at 3:44

you can always allow the FTP daemon full access to all files by running

setsebool -P allow_ftpd_full_access 1
share|improve this answer

I disabled selinux by following these instructions here. I was able to log in not using sftp.

To disable permanently, I edited /etc/selinux/config and set


After the reboot, I was able to log in normally.

share|improve this answer
Disabling SELinux is a troubleshooting step to determining whether SELinux is the cause of the problem, not a final solution. Once you have determined SELinux is the cause, you should look into your AVC denials and determine which boolean you need to change, or make a custom policy with the SELinux tools. Disabling SELinux permanently is not a good idea. – jamieb Nov 21 '14 at 3:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.