The Very Secure FTP Daemon (vsftpd) has always worked well out of the box in Linux Mint 16 64-bit. Install it and go. It’s as easy as that. However, installing vsftpd 3.0.2 in Xubuntu 13.10 64-bit presented an unexpected surprise: If left with the default /etc/vsftpd.conf configuration (and even after editing), vsftpd would always return one of these two errors:
500 OOPS: child died
500 OOPS: priv_sock_get_cmd
The child died error would appear by default, and the priv_sock_get_cmd would appear after adjusting the ftpsecure user and chroot settings.
FTP clients functioned fine. Running ftp in a terminal would return “Connected” but appear to hang. Filezilla would connect but return the child died error.
Running netstat -a | grep ftp showed that vsftpd was listening, and it was the only FTP server running. However, the errors persisted. The network conenction was fine since SSH and ping responded normally. After isolating the issue to vsftpd itself, it was clearly a case of an incorrect setting somewhere in the vsftpd configuration file or possibly a bug in vsftpd.
Checking the vsftpd web page [https://security.appspot.com/vsftpd.html] provided a clue: Version 3.0.2 was released with seccomp sandbox fixes. Well then, what if we tweaked the configuration file to disable the seccomp sandbox? It cannot hurt to try, right? After all, nothing else helped to resolve the child died error despite checking and double checking the settings, of which nothing was amiss. All user accounts, home directories, system settings, and firewall settings were fine. Yet, these errors persisted until the following line was added to /etc/vsftpd.conf:
(Add this line anywhere that makes sense. Its location in /etc/vsftpd did not seem to make a difference.)
sudo service vsftpd restart
Presto! With one command, vsftpd functioned properly in Xubuntu 13.10 64-bit! All clients could log into vsftpd with regular logins (anonymous logins were disabled).
This was tricky to fix because,
1) vsftpd ran fine by default in Linut Mint 16 but not in Xubuntu 13.10, and
2) There was no clue regarding seccomp_sandbox in /etc/vsftpd.conf or the man pages: man vsftpd or man /etc/vsftpd.conf.
Man pages are usually the first locations for reference, but this was a case where the man pages at my disposal lacked any information regarding this subject. Only after wading through numerous posts, manuals, and tutorials did one–and only one–post provide a hint about resolving the child died and priv_sock_get_cmd errors caused by vsftpd running on a 64-bit system.
While other issues might also cause these errors, this is the fix that worked in this case.
vsftpd is happy now and running well!
Sidenote: If vsftpd sounds like too much trouble in Xubuntu 13.10, give Pro FTP Daemon (ProFTPD) a try. After a few changes to its configuration file, ProFTPD works well in Xubuntu 13.10 64-bit.