A LOT of that stuff is not required in your server I'd say. Try editing this server, and remove the !wheel after the DefaultRoot ~
Save this and edit it to suite your needs.
ServerName "FTP Server"
ServerType standalone
RootLogin off
MaxInstances 20
User nobody
Group nobody
<Global>
ExtendedLog /var/spool/syslog/proftpd/access.log WRITE, READ, write
ExtendedLog /var/spool/syslog/proftpd/auth.log
AllowForeignAddress on
#Paranoia logging level
#ExtendedLog /var/spool/syslog/proftpd/paranoid.log
</Global>
#Begin Virtual Host Settings
<VirtualHost "ENTER IP ADDRESS HERE!">
DeferWelcome on
DisplayLogin welcome.msg
ServerAdmin
ftp.admin@blah.com
ServerName "My FTP Server"
TransferLog /var/xferlog/ftp.transfers
Umask 0007
MaxLoginAttempts 3
RequireValidShell no
DefaultRoot ~
AllowOverwrite yes
AuthUserFile /var/conf/ftp/authfiles/passwd.blah
AuthGroupFile /var/conf/ftp/authfiles/group.blah
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
Port 21
PassivePorts 61000 61025
<Limit PORT PASV>
AllowAll
</Limit>
<Limit SITE_CHMOD>
AllowUser admin
DenyAll
</Limit>
<Limit DELE>
AllowUser admin
DenyAll
</Limit>
<Limit READ DIRS>
IgnoreHidden on
</Limit>
<Limit LOGIN>
AllowUser user1
AllowUser user2
AllowUser user3
AllowUser user4
AllowUser user5
DenyAll
</Limit>
Make sure you set users' login shells to /bin/false.
Make sure that you open the passive port range for web browser use, and passive clients. (The range is entirely up to you as long as it's tcp ports.)
Make sure that your admins are members of each users' group. and also make the ftp administrator's home directory, that of the user's root.
users:
/ftp/user1
/ftp/user2
admin's:
/ftp
This way, even though the admin is locked into /ftp he can still administer the sub directories.
Good Luck!