Occasionally, one might want to run ProFTPD on a system where root privs are not available to you as a user. It is still possible to setup a functioning FTP server without root privileges. There are a few catches and special considerations for this, however.
Here are the configuration directives that you will need to use in order to run the server without root privileges:
Port
Example:
Port 20021
AuthUserFile, AuthGroupFile
/etc/passwd
/etc/shadow
AuthUserFile
AuthGroupFile
AuthUserFile /path/to/custom/ftpd.passwd AuthGroupFile /path/to/custom/ftpd.group
AuthPAM
AuthPAM off
PidFile
PidFile /home/bob/ftpd/proftpd.pid
ScoreboardFile
ScoreboardFile /home/bob/ftpd/proftpd.scoreboard
WtmpLog
wtmp
host.domain.net (localhost[127.0.0.1]) - wtmpx /var/adm/wtmpx: Permission denied
WtmpLog off
User, Group
User
Group
groups
User bob Group bob
Note that other configuration directives will be affected by the lack of root privileges: DefaultRoot will not work, nor will <Anonymous> sections, nor UserOwner. Basically any operation that requires root privileges will be disabled.
DefaultRoot
<Anonymous>
UserOwner
If using the SystemLog directive, make sure the file to which the server is to log can be written to by the configured daemon User or Group.
SystemLog
The daemon should now start successfully. Complaints about not being able to switch UIDs and such will be logged, but the daemon should still function properly.