My Arch Linux 4.20.2 serves files without a problem from vsftpd's default root directory, /srv/ftp/.

The only addition I made to the config file at /etc/vsftpd.conf is


This gets rid of the following error displayed in Firefox when accessing the files:

500 OOPS: priv_sock_get_cmd

This is all great, but I'd like to serve files from a different directory, say /home/jenkins.

Consulting the manual of vsftpd.conf, I added this to /etc/vsftpd.conf:


Hoping to make the change effective, I called systemctl restart vsftpd.

Yet, vsftpd (I'm using version 3.0.3) still serves the files in its default root directory, /srv/ftp/.

What's going on?


As it turns out, systemctl restart vsftpd did not make the changes effective.

Using pgrep vsftpd, I observed that two of the three processes that are spawned with systemctl start vsftpd had survived after me calling systemctl restart vsftpd. That's why the old configuration was still in use.

The solution was to call

pkill vsftpd; systemctl start vsftpd

Now, vsftpd serves the files under the directory specified in /etc/vsftpd.conf with


instead of the files in the default root directory, /srv/ftp/.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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