Zelf heb ik het volgende gedaan :
deze tutorial doorlopen om een proftpd installatie te krijgen met virtuele hosts in een mysql database :
http://www.debuntu.org/how-to-ftp-virtual-host-with-proftpd-mysql
Vind het zelf ook belangrijk dat ik niet in plain text de logins en passwd van mn ftp server over het net stuur dus ook deze tutorial erbij gepakt om er een ftps van de maken (weliswaar voor 8.10, maar dat is om het even in dit geval) :
http://www.howtoforge.com/setting-up-proftpd-tls-on-ubuntu-8.10
Dan is dit de uiteindelijke proftpd.conf die ik heb overgehouden :
Include /etc/proftpd/modules.conf
Include /etc/proftpd/sql.conf
Include /etc/proftpd/tls.conf
UseIPv6 off
MasqueradeAddress serverip
ServerName "FTPd"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
RootLogin off
RequireValidShell off
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 600
DisplayLogin welcome.msg
#DisplayChdir .message true
ListOptions "-l"
IdentLookups off
ServerIdent on "...."
DenyFilter \*.*/
DefaultRoot ~
DirFakeUser on ftp
DirFakeGroup on ftp
DirFakeMode 0600
Port 6003
PassivePorts 5960 6000
MaxInstances 20
User proftpd
Group proftpd
Umask 0006
AllowOverwrite on
AllowForeignAddress on
TransferLog /var/log/proftpd/xferlog.log
SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
vervolgens heb ik 2 gebruikersgroepen gemaakt die allebei een home directory hebben in :
/var/proftpd/groep1
/var/proftpd/groep2
als ik nu een gebruiker wil aanmaken log ik in op mn mysql server en geef ik het volgende commando om de gebruiker aan te maken met als homedir /var/proftpd/groep1 .
mysql> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'gebruiker1', PASSWORD('userpassword'), 3001, 3001, '/var/proftpd/groep1', '/sbin/nologin', 0, '', '');
Je kan hiervoor ook van sourceforge proftpd administrator downloaden en installeren, maar ik hou het graag basic.
Om er nu voor te zorgen dat de goede personen op de goede plekken komen binnen mijn filesystem maak ik binds van de groep home directorys naar de plekken op mn systeem waar de data staat. een /etc/fstab voorbeeld :
/mnt/sda4/music_archive /var/proftpd/groep1/muziek none bind 0 0
Als er nu een persoon inlogt uit groep 1 dan ziet hij in zn home directory de map muziek.
S6~