An anonymous FTP server has been installed on netlib2.cs.utk.edu to provide anonymous FTP access to the Netlib directory tree. The Netlib anonymous FTP server is based on the Washington University ftp daemon, which in turn is based on the 4.3-Reno BSD ftp daemon. Minor modifications were necessary to get it to compile in a vanilla SunOS environment. The server supports several useful features including per-site, per-user, and per-directory access control, extensive logging, automatic display of ``readme'' messages when you cd to a particular directory, and automatic creation of compressed and/or tarred versions of files and directories. (Just ask for <filename>.Z instead of filename, or <directory>.tar.Z instead of each file in the directory, and it gets packaged up on-the-fly.)
In ``anonymous'' mode, ftp logs into the ``ftp'' account and changes its root directory to that account's home directory, so that it becomes impossible to access files outside of that directory. On netlib2, the ``ftp'' account's home directory is /netlib.
Configuration files are as follows:
/etc/ftpusers This file contains a list of users (like "nobody") who are not permitted to log in via ftp. /usr/local/etc/ftpaccess This file specifies who can use the ftp server (you can create classes based on where someone logs in from and who they say they are), how many members of each class can log in at once, which files get printed out when you cd to a particular directory, a message to be displayed at login time, whether a class of user can request auto compression or auto-tar, what kinds of things can be logged, who can "upload" files, and where warning messages get mailed. See "man ftpaccess" for more information. /usr/local/logs/ftpd.log This is where transactions get logged.
There are other config files, detailing other features of ftp, but they are not used by the netlib implementation.
For more information, see the man pages for ftpaccess(5), ftpconversions(5), ftpcount(1), ftpd(8), ftphosts(5), ftpshut(8), ftpwho(1), and xferlog(5). (On netlib2, these man pages are installed in /usr/local/man; make sure your MANPATH environment variable contains /usr/local/man ahead of /usr/man).
Netlib's ftp server is installed in /usr/local/etc/ftpd. The Sun-supplied binary is in /usr/etc/in.ftpd; but the file /etc/inetd.conf has been changed to point to /usr/local/etc/ftpd.
A few other programs are also needed to make anonymous FTP work properly - special (statically-linked) versions of ls, compress, and (GNU) tar. These are installed on netlib2 in /netlib/bin. On netlib2 there is also a dummy /netlib/etc/passwd file, which contains dummy entries for root and ftp - with fake passwords. These are so that the output of ls -l can use meaningful user names rather than uid numbers.
The sources are in /usr/local/src/wu-ftpd-2.1a. There are some documentation files there that detail how to configure it. For these instructions see /usr/local/src/wu-ftpd-2.1a/INSTALL and /usr/local/src/wu-ftpd-2.1a/NOTES.