Ok, so I spent quite a bit of time trying to figure out how to allow anonymous ftp access on Mac OS X recently. This was a stupid mistake. There are a number of websites out there that describe some lame way of faking it. What I should have done in the first place is read the ftpd man page. Duh. This is UNIX after all, and the man page makes it clear.

I'd like to prefix this by saying I from what I understand that Jaguar and earlier use a different ftpd than Panther. If you're using Jaguar and you wreck your computer trying to follow these steps don't complain to me.

So, first of all, go read the ftpd man page. Here's the step by step for the lazy/impatient/ignorant.

  1. In the System Preferences turn off FTP
  2. In the NetInfo Database create a group as follows:
    • name=ftp
    • passwd=* (Note the * is a literal *. Hold shift, press 8.)
    • gid= any integer below 500. (I used 101.)
  3. Create a user as follows:
    • name=ftp
    • passwd=*
    • expire=0
    • home=/Users/Shared (or anywhere else)
    • shell=/usr/bin/false
    • realname=Anonymous FTP
    • change=0
    • _writers_passwd=ftp
    • uid= The same as the gid from step 2
    • gid= The same as the uid
  4. In the System Preferences, turn on FTP

To make things easier you can duplicate a pre-existing group/user and modify the values. Note that this is the way the lukemftpd is designed to work with anonymous users, and includes properly chrooting to the ftp directory.