I can't get vsfptd working on Ubuntu 12.04.

my vsftpd.conf file looks like this, and I try to connect with a local user:


Error message in FileZilla:

Response:   331 Please specify the password.
Command:    PASS ****
Response:   530 Login incorrect.
  • 1
    try restarting the vsftpd. >sudo /etc/init.d/vsftpd restart I had the same issue, but this worked for me. – v1h5 Jan 31 '14 at 18:10
  • 1
    Another thing to check : what is the login shell for the user. is that shell present in /etc/shells – user400315 Apr 22 '15 at 3:12
  • Please how can I modify the /etc/shells ? – user558008 Jun 17 '16 at 3:48
  • For me, there was just wrong format for the user in /etc/passwd - i needed to set the right home dir, shell, and the ,,, part. – Hannes Schneidermayer Apr 19 '17 at 16:15

Back up the config file before making a change;

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back

and then edit vsftpd.conf (with vi or nano)

nano /etc/vsftpd.conf

Then make the following change


Save your change and restart the ftp server (if you use nano hit CTRL+O & enter to save then CTRL+X to exit)

sudo service vsftpd restart

Source: VSFTPD configuration problems with 12.04

  • 3
    This problem also, can be solved in debian7 by this answer. – shgnInc Feb 1 '15 at 7:36
  • 1
    What is the rationale behind this one? – Joost Aug 20 '15 at 21:08
  • 15
    You are disabling default access control via PAM, because default "ftp" has no rules. The default pam_service_name=vsftp uses the file /etc/pam.d/vsftpd. This file by default requires FTP users to have a shell listed in /etc/shells and requires them not to be listed in /etc/ftpusers. – Jeroen Vermeulen - MageHost Sep 4 '15 at 14:41
  • Solved me the same problem on Ubuntu 14.04. Thanks! – Rotem Oct 11 '15 at 10:23
  • 3
    @JeroenVermeulenBVBA +1 you are right. I fear some people just don't know what's actually happening underneath and why it appears to "work". – Stphane Dec 7 '16 at 14:32

By default vsFTPd uses the file /etc/pam.d/vsftpd. This file by default requires FTP users to have a shell listed in /etc/shells and requires them not to be listed in /etc/ftpusers. If you check those 2 things your probably find what the problem is.

  • 1
    I think this should be the accept answer because it points out where is the problem. – PhoneixS Sep 26 '18 at 11:18
  • How does one make sure the FTP user has one of these shells? Asking for a friend... – Allen May 19 '20 at 0:32
  • 1
    @Allen This is defined in the file /etc/passwd. Each line is the info about one user. The fields are separated by a colon (:). The 7th field contains the path to the shell binary of the user. – Jeroen Vermeulen - MageHost May 20 '20 at 7:56
  • 2
    Apart from editing the passwd file directly, you can use usermod -s /bin/bash YOUR_USERNAME – Raptor Oct 28 '20 at 9:41

I did not need to change the vsftpd.conf. Only needed to make sure that a shell was set in my /etc/passwd file, that also was lited in /etc/shells.

So basically after useradd without a shell I needed to make sure the home directory was created and that the user had /bin/bash as it's shell.

  • 1
    Thanks that's what happened to me. The other solutions worked by removing all safety mechanisms, this one was actually solved the problem. – VinGarcia May 2 '18 at 0:56

I met this problem when I tried to login in with root and I just solved it.
my vsftpd: version 3.0.2


check the following file(it contains list of users disallowed FTP access):



In my case, I commented out root from the file,then it worked.

  • I did same to be able to login as root, but didn't worked – VISHAL DAGA Apr 7 '19 at 4:08
  • Not a good idea to enable thoses users! There is a security reason why they are refused. – MUY Belgium Nov 29 '19 at 17:01

Please make some changes in /etc/vsftpd.conf


if you want to set access by default /var/www directory for local user you can do that with below line.....


now save and exit......

restart vsftpd server using sudo service vsftpd restart


The suggested resolution did not work for me. I gave up on the ftp user, and switched my attention to the ubuntu user. I made sure there was a password associated with the ubuntu user.

I made sure to enable passive mode, and set local_enable=YES in the vsftpd.conf file.

I was able to authenticate just fine using the ubuntu account. And I successfully uploaded a large file to my Amazon Ubuntu FTP server. Clearly there was something amiss with the ftp user.


i used ubuntu 18.04 and LetsEncrypt certificates for TLS encryption. What worked was changing the name of the pam_service_name=ftp the error i was getting in Filezilla was

"GnuTLS error -15": An unexpected TLS packet was received.

Reference: FTPS set up in ubuntu 18.04

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