This is a Linux port of the BSD ftp server (ftpd). It doesn't have all the bells and whistles of wu-ftpd, but it is also probably less buggy and more secure (at least, it was certainly so before I ported it, and I hope I didn't mess things up *too* much). The source code was taken from the OpenBSD CVS as of 2000/07/07 (this is after release 2.7). The ftpd version number is 6.5 and this port's version number is 0.3.2. My modest contribution a port maintainer consisted of providing some replacement for a couple of BSD functions, removing an odd BSD-ism here or there, and adding PAM authentication support. New in version 0.2.0 is automatic, on-the-fly decompression of .gz files: if the client requests a file foobar that does not exist but the file foobar.gz exists, then the server will use /bin/zcat to uncompress the file on the fly. This is enabled if (as is the default) the -DAUTO_UNCOMPRESS flag is present in the Makefile. For anonymous ftp, you will also need to put /bin/zcat in the restricted root, along with all the libraries it might need. Version 0.3.0 has added IPv6 support (as specified by RFC2428; and also as per RFC1639). This might not be complete for the moment. The Linux port might have specific problems with that, too (because of socket structure length and organization). Also, version 0.3.0 adds the much-awaited shadow password support for people who don't want to or can't use PAM. Thanks to Arun Bhalla for this. Version 0.3.1 incorporates an internal 'ls' command so you no longer need to include /bin/ls and its dynamically linked libraries in your chrooted directories to be able to list files. (Note however that if you want on-the-fly uncompression of gzipped files you will still need /bin/zcat and its libraries.) This was one of the FAQs about this port ("Why doesn't the ls command work?"): now it should no longer cause any difficulty. Thanks to Francis Lacoste for the patch. If you don't like the internal ls but prefer using your own (e.g. if you want all the features of GNU ls), remove the -DINTERNAL_LS flag from the Makefile. Please read the GMT-WARNING file if you used the external ls before and consider switching to internal ls (especially if you live east of Greenwich). Also in version 0.3.1 is a new option -q provided by W. Reilly Cooley that prevents displaying the ftpd version number to clients. If you are an adept of security through obfuscation you might like this. Version 0.3.2 is a bugfix version. The -q functionality has been corrected (it was inverted). The utmp/wtmp insertion functions have been adapted for Linux (thanks to "xsprite" for this patch) so that ftp connections will appear with 'w' or 'who'. A few bugfixes were made by the OpenBSD team. Note that a security hole was found in the original OpenBSD version was found, but it does not affect this port; however, the fixes have been included anyway. Every change I made has been marked by a check on ORIGINAL_SOURCE. That is, if you compile with -DORIGINAL_SOURCE you get exactly the source I started from (and therefore, it doesn't compile except on BSD so you're not supposed to do that - but searching for ORIGINAL_SOURCE will let you see exactly what changes I made). There is no configure script. To compile, just type "make". You may wish to edit the Makefile to your convenience, first. The install target is not supported, you have to install by hand. Just put ftpd wherever you want, for example /usr/local/sbin/ftpd-BSD, and ftpd.8 in /usr/local/man/man8/ftpd-BSD.8, and edit /etc/inetd.conf to read something like: ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/ftpd-BSD -l -S (see the accompanying man page for details). Also remember that you need to add a PAM configuration file. A sample one is provided: copy it to /etc/pam.d/ftp and edit as needed. This is tested on linux-2.2.16 with glibc-2.1.3. The libc version may be important. Since the changes I made are extremely minor I leave the original copyright statement and license unchanged and I don't claim copyright on my port work. Oh, and since this file is an advertisement I must acknowledge: This product includes software developed by the University of California, Berkeley and its contributors. To make things clear, all the praise should go to the OpenBSD folks and all the blame to me, or possibly to /dev/null. More importantly, if you have improvement suggestions, it is best to send them to the OpenBSD team, since I do not wish my port to diverge too much from their version (lest maintaining it become too difficult). Enjoy, and happy hacking. Orsay (France), 2000/07/07 -- David A. Madore (david.madore@ens.fr, http://www.eleves.ens.fr:8080/home/madore/ )