Kis számú kliens esetén mysql nélkül konzolról - root-ként
(12.04 LTS server vagy desktop - mind kettőn kipróbálva)
apt-get install proftpd
nano /etc/proftpd/proftpd.conf
Átírni (vagy beírni) ezeket a sorokat:
# Use this to jail all users in their homes
DefaultRoot ~
AuthUserFile /etc/proftpd/ftpd.passwd
# virtual user add:
# cd /etc/proftpd
# sudo ftpasswd --passwd --name=user1 --home=/home/proftp/user1 --shell=/bin/false --uid=4001
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off
# Port 21 is the standard FTP port.
# Ezt vagy itt írom át,
# vagy a router irányít ide a külső public portról
Port 21
A proftpd szervert újraindítom
/etc/init.d/proftpd restart
kis számú ftp kliensnél egyszerűbb, ha "saját partíció"-t készítek
minden user-nek, most például 6 GB-osat
dd if=/dev/zero bs=1024 count=6000000 of=/adat/loopfs/ftp/user1.ext4.img
megformázom
mkfs -t ext4 /adat/loopfs/ftp/user1.ext4.img
becsatolom
mount -oloop -text4 /adat/loopfs/ftp/user1.ext4.img /adat/srv/proftpd/user1
Azért készítek egy "ftp" könyvtárat,
hogy a "lost+found" ne látszódjon a kliens oldalról
mkdir /adat/srv/proftpd/user1/ftp
Hogy reboot után is meg legyen
/etc/rc.local
-ba is beírom ezt:
mount -oloop -text4 /adat/loopfs/ftp/user1.ext4.img /adat/srv/proftpd/user1
Az
ftpasswd
abba a könyvtárba ír, amelyikben meghívják, ezért:
cd /etc/proftpd
ftpasswd --passwd --name=user1 --home=/adat/srv/proftpd/user1/ftp --shell=/bin/false --uid=4001
itt kell beírni user1 jelszavát
Minden user külön id-t kap 4001-től, de nem automatikusan, ezért erre figyelni kell
Megnézem, mit alkottam:
cat ftpdpasswd
user1:$1$n9ef5xsl$VUPo9cbFWv02bm6MhcQ80/:4001:4001::/adat/srv/proftpd/user1/ftp :/bin/false
És már működik is.