The FreeBSD Diary

The FreeBSD Diary (TM)

Providing practical examples since 1998

If you buy from Amazon USA, please support us by using this link.
proftpd and FreeBSD 7 December 1999
Need more help on this topic? Click here
This article has no comments
Show me similar articles
This article describes how I got proftpd to work with FreeBSD 3-3 STABLE.
I recently upgraded a box from 3.3-RELEASE to 3.3-STABLE.   In the process, I encountered problems with proftpd.  Specifically, anonymous login worked, but regular users could not log in.  The error message was:
Dec  6 23:00:15 synergy proftpd[346]: unable to resolve symbol: 
Dec  6 23:00:16 synergy proftpd[346]: PAM(dan): Authentication failure
Dec  6 23:00:16 synergy proftpd[346]: USER dan: incorrect password 
             from [] to

My first port of call was the proftpd homepage at and I checked the questions on PAM.  I followed the suggestions (found there and in the FreeBSD mailing list archives) and remove the entry from /etc/pam.conf (third line shown below):

ftp auth    required         try_first_pass
ftp account required         try_first_pass
#ftp session required         try_first_pass

But this didn't allow the user to login.  However, if I add the following option to /usr/local/etc/proftpd.conf:

AuthPAMAuthoritative off

the logins work but these errors remain:

Dec 7 00:04:07 synergy proftpd[3779]: PAM(dan): Authentication failure
At the prompting of someone from the FreeBSD Questions mailing list, I went to archives at and starting searching.  Eventually, I found which mentioned proftpd-1.2.0pre9.  I checked the ftp site at and found the file in question.  I downloaded it, configured it, installed it, and it worked.
The install
First I fetched the tarball:
fetch -P
tar xvfz proftpd-1.2.0pre9.tar.gz
cd proftpd-1.2.0pre9

In the README file, you'll find a reference to --enable-force-setpassent.   I eventually figured out that this refers to a command line parameter to ./configure.   You should also read INSTALL.

I ran the configure script like this:

install_user=nobody install_group=wheel ./configure 

This will run proftpd as user nobody in group wheel.

Note that the program will install to a different location than that of the port.

port /usr/local/libexec/proftpd
this install /usr/local/sbin/proftpd

I had the port, so first I deinstalled the port:

pkg_delete proftpd-1.2.0p8

The next step was:

make install

Don't forget to update your startup script to reflect the new location:

more /usr/local/etc/rc.d/
/bin/mkdir -p /var/run/proftpd
if [ -x /usr/local/sbin/proftpd ]; then
        /usr/local/sbin/proftpd && echo -n ' proftpd'

With this new version, I removed:

AuthPAMAuthoritative No

from /usr/local/etc/proftpd.conf so proftpd would use PAM.   Actually, the logins worked with or without PAM.  So it's your choice.

Need more help on this topic? Click here
This article has no comments
Show me similar articles