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:
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.
Symptom: Users are unable to connect to the FTP service on MaxOS X Server 10.4. Both local user accounts and Open Directory users are unable to connect to the server via FTP. However they are able to connect to the server via Apple File Sharing (AFP). The system.log file has FTP server entries which contain “… ACCESS DENIED (not in any class) …” and “… FTP LOGIN REFUSED (access denied) … ”
Solution: The FTP server configuration file has become corrupt. Perform the follow steps to reset the FTP server configurations back to default:
sudo serveradmin stop ftp
sudo mv ftpaccess ~/Desktop
sudo cp ftpaccess.default ftpaccess
sudo serveradmin start ftp
This replaces the ftpaccess file with a fresh clean one without any corruptions. Since this procedure resets all the FTP service settings back to default, you’ll need to reconfigure the FTP service settings to what you had before.
You can read more about this problem at the following Apple Discussion Forums thread: Link