Hier mal eine Konfig (ungetestet) und ein SQL-Dump dazu.
ServerType standalone
RootLogin Off
UseReverseDNS Off
PersistentPasswd Off
RequireValidShell Off
PidFile /var/run/proftpd/proftpd.pid
ScoreboardFile /usr/local/var/proftpd/proftpd.scoreboard
User unixusername
Group unixgroupname
DefaultChdir ~
DefaultRoot ~
DefaultTransferMode binary
UseFtpUsers Off
TransferRate RETR,STOR 2048:52428800
IdentLookups Off
Port 21
ServerAdmin emailadresse
ServerIdent On "FTP-Server"
ServerName "FTP-Server"
Umask 0111 0000
SQLAuthenticate users* groups*
SQLAuthTypes Backend Empty
SQLConnectInfo user@localhost:3306 ftp ftp PERSESSION
SQLHomedirOnDemand On
SQLUserInfo benutzer loginname passwort NULL NULL concat('/pfad/zu/den/verzeichnissen',verzeichnis) NULL
SQLGroupInfo gruppen name ID mitglieder
<Directory ~>
<Limit WRITE SITE_CHMOD DELE>
DenyAll
</Limit>
<Limit READ DIRS>
IgnoreHidden On
AllowAll
</Limit>
</Directory>
<Directory ~/uploads>
<Limit SITE_CHMOD DELE>
DenyAll
</Limit>
<Limit WRITE READ DIRS>
AllowAll
DenyAll
</Limit>
</Directory>
CREATE DATABASE ftp;
USE ftp;
DROP TABLE IF EXISTS benutzer;
CREATE TABLE `benutzer` (
`ID` int(11) unsigned NOT NULL default '0',
`Beschreibung` varchar(30) default NULL,
`loginname` varchar(16) NOT NULL default '',
`passwort` varchar(16) NOT NULL default '',
`Shell` varchar(255) default NULL,
`verzeichnis` varchar(255) NOT NULL default '/',
`Anmerkung` text,
PRIMARY KEY (`loginname`,`ID`)
) TYPE=MyISAM COMMENT='FTP-Benutzer für den FTP-Server';
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("0", "Admin", "ftpadmin", "2009d4fa00e0ef29", NULL, "/ftp", NULL);
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("1", "Anonymous", "anonymous", "", NULL, "/ftp/anon", NULL);
DROP TABLE IF EXISTS gruppen;
CREATE TABLE `gruppen` (
`ID` tinyint(3) unsigned NOT NULL auto_increment,
`name` varchar(16) NOT NULL default '',
`mitglieder` text,
UNIQUE KEY `ID` (`ID`,`name`)
) TYPE=MyISAM COMMENT='FTP-Benutzergruppen für den FTP-Server';
INSERT INTO gruppen (ID, name, mitglieder) VALUES("3", "administratoren", "ftpadmin");
DROP TABLE IF EXISTS transfer;
CREATE TABLE `transfer` (
`username` varchar(60) NOT NULL default '',
`filename` varchar(255) default NULL,
`size` bigint(20) default NULL,
`host` varchar(255) default NULL,
`ip` varchar(16) NOT NULL default '',
`aktion` varchar(20) NOT NULL default '',
`dauer` varchar(10) default NULL,
`zeit_lokal` datetime default NULL,
`ui` bigint(20) NOT NULL auto_increment,
PRIMARY KEY (`ui`)
) TYPE=MyISAM COMMENT='FTP-Befehlshistory für den Server ';
MySQL geht in etwa so:
[root@knowledgebase proftpd]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6235 to server version: 3.23.56
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use ftp;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------+
| Tables_in_ftp |
+---------------+
| benutzer |
| gruppen |
| transfer |
+---------------+
3 rows in set (0.00 sec)
mysql> **hier kannste jetzt z.B. den Kram von da oben eintippen**