Ich habe es zum laufen gebracht. Ich habe es mit hilfe des englischen
HowTos nocheinmal eingerichtet und es geht jetzt.
Aber einige Fragen habe ich noch.

Mein Ziel ist es, mehrere Gruppen zu haben. Je nach Gruppe soll die
Ordnerstruktur anders aussehen:

Bsp.: Gruppe StdUser (User z.B. User)

/               (nur lesen, z.B. /home/ftp/download)
/upload         (eigentlich ein Ordner mit seinem Namen auf einem
speziellen Verzeichnis (z.B. /home/ftp/upload/username) lesen, schreiben

Gruppe Admins (Nur Administrator, vielleicht aber später noch ein
zweiter)
Soll Vollzugriff auf root und alles haben.

Ich möchte erst einmal wissen, wie das geht. Das man normalerweise
niemanden Vollzugriff gibt, ist klar.

Außerdem habe ich bemerkt, dass das Verzeichnis /home/ftp, in welchem
ich eine Bilddatei abgelegt habe, ersteinmal als leer angezeigt wird.
Erst wenn ich manuell aktualisiere wird der Inhalt angezeigt.
Normalerweise wird mir immer gleich der Inhalt dargestellt.

Hier meine derzeitige Konfiguration:

Tabelle groups:
groupname       gid     members ftp_allow
StdUser         1001    test    Y
Admins          65000   tobias  Y

Tabelle users:
userid          tobias          thomas
passwd          kennwort        anderes Kennwort
uid             1001            1002
gid             65000           1001
homedir         /               /home/ftp
shell           /etc/bash       /etc/bash

proftpd.conf:

#
# /etc/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# 

ServerName                      "Debian"
ServerType                      standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
DefaultRoot                     /home/ftp

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                     "-l"

DenyFilter                      \*.*/

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd               off

# Uncomment this if you would use TLS module:
#TLSEngine                      on

# Uncomment this if you would use quota module:
#Quotas                         on

# Uncomment this if you would use ratio module:
#Ratios                         on

# Port 21 is the standard FTP port.
Port                            21

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            nobody
Group                           nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                           022  022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on

# Delay engine reduces impact of the so-called Timing Attack described
# in http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default. 
#DelayEngine                    off

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#   User                                ftp
#   Group                               nogroup
#   # We want clients to be able to login with "anonymous" as well as
#   # "ftp"
#   UserAlias                   anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser on ftp
#   DirFakeGroup on ftp
# 
#   RequireValidShell           off
# 
#   # Limit the maximum number of anonymous logins
#   MaxClients                  10
# 
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin                        welcome.msg
#   DisplayFirstChdir           .message
# 
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
# 
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and
#   #   # dirs (second parm) from being group and world writable.
#   #   Umask                           022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
# 
# </Anonymous>

RequireValidShell       off
AuthOrder               mod_sql.c
AuthPAM                 off

#<Directory /home/ftp>
#       HideFiles "^(\.htaccess|\.directory|welcome\.msg)$"
#       <Limit WRITE>
#               IgnoreHidden on
#               DenyAll
#       </Limit>
#</Directory>



# MySQL-Konfiguration

SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo [EMAIL PROTECTED] proftpd nichtzeigen PERSESSION
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 1000
SQLMinUserUID 1000
SQLHomedirOnDemand      off
SQLNegativeCache        off

SQLLogFile /var/log/proftpd-sql.log
SQLUserInfo users userid passwd uid gid homedir shell

# Zusaetzliche WHERE Klausel * WHERE ftp_allow = 'Y'
SQLUserWhereClause "ftp_allow = 'Y'"


Antwort per Email an