After setting up a new Linux server I kept getting the following error whenever I tried to upload something with the VSFTPD ftp service:
500 OOPS: reading non-root config file
It turns out that I had the following setting in the /etc/vsftpd/vsftpd.conf file:
user_config_dir=/etc/vsftpd/virtual_users
I commented out that setting and restarted the vsftpd service and the problem went away. I then checked to make sure I had spelled the “user_config_dir” directory name correctly and it turns out that I had created the directory with the name “virtual_user” without the “s” at the end. So that error appears to be caused by the “user_config_dir” not being present or accessible to the VSFTPD service. If you get this error make sure the directory you specify for the “user_config_dir” exists and is accessible.