Although it must be started by the root user, after initialization it runs as the user specified by user-name parameter. This should be a user with minimal permissions, preferably from an account set up for this purpose only.
The server uses chroot(2) to change the root directory of the server to the root-directory directory. When a user connects, this is the directory that they will start in, and is the top of their directory tree.
When FTP clients connect, they may log in as "ftp" or "anonymous". Typically they will then send their e-mail address as password (most web browsers send a browser identifier rather than the user's e-mail address). Standard Unix file permissions are enforced for downloading, meaning clients may download any file user-name has permission to read. No uploads are permitted. All client activity is logged (see DIAGNOSTICS below).
After the server has started, you should check the appropriate log produced by sysklogd(8) for the FTP daemon to insure that startup completed correctly. Certain errors occur only after the server has disconnected from the TTY, so can only be recorded via the log mechanism.
If the server must terminate for any reason, it will also be logged, as will other non-fatal internal errors. They are logged with attention to how serious the condition is believed to be, as documented in the syslog(3) library call.
Client activity will also be logged through this mechanism. This includes connect and disconnect (or rejection due to too many simultaneous users), the e-mail address reported as password, and file transfers. All client commands are logged as sent at the DEBUG level. To fully monitor client activity you may configure sysklogd(8) to record these.
You can use the kill(1) command to stop oftpd. When the server receives SIGHUP or SIGINT, it will stop listening for new FTP connections, and a new FTP server may be started. Any existing connections to the old server will continue to function normally until the client disconnects or times out. After all clients connections have closed, the server will exit.
To shutdown the server and close all client connections immediately, use SIGKILL.