Цель - отделить пользователей из /etc/passwd от пользователей ftp,
но не устанавливая различных внешних средств для хранения базы пользователей.
Из целого ряда ftp-серверов я остановился на pure-ftpd.Вариант запуска был найден быстро, но при этом сервер должен был запускаться средствами (x)inetd:
$ grep pure /etc/inetd.conf
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-virtualchroot -4 -A -E -d -lpuredb:/etc/pure-ftpd/pureftpd.pdb
Сделал так на другом сервере и понял, что у меня там нет inetd.
Устанавливать не стал. Решил сделать сервис standalone.
# dpkg-reconfigure pure-ftpd-common
Конечно, однострочные конфиги, раскиданные по разным файлам,
могут вызвать отторжение у сторонников другого подхода, но сейчас не об этом.
# /etc/init.d/pure-ftpd restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l pam -d -4 -u 1000 -A -E -O clf:/var/log/pure-ftpd/transfer.log -B
Выключаю pam и включаю puredb
# rm /etc/pure-ftpd/conf/PAMAuthentication /etc/pure-ftpd/auth/70pam
# ln -s ../conf/PureDB /etc/pure-ftpd/auth/45puredb
Работа с учетными записями производится посредством pure-pw.
В заключение, пример рабочей конфирурации:
$ grep -r . /etc/pure-ftpd/*/
/etc/pure-ftpd/auth/45puredb:/etc/pure-ftpd/pureftpd.pdb
/etc/pure-ftpd/auth/65unix:no
/etc/pure-ftpd/conf/UnixAuthentication:no
/etc/pure-ftpd/conf/VerboseLog:Yes
/etc/pure-ftpd/conf/IPV4Only:Yes
/etc/pure-ftpd/conf/MinUID:10000
/etc/pure-ftpd/conf/ChrootEveryone:Yes
/e tc/pure-ftpd/conf/NoAnonymous:yes
/etc/pure-ftpd/conf/PureDB:/etc/pure-ftpd/pureftpd.pdb
/etc/pure-ftpd/conf/AltLog:clf:/var/log/pure-ftpd/transfer.log
URL: https://lists.ubuntu.com/archives/ubuntu-bugs/2006-November/...
Обсуждается: http://www.opennet.dev/tips/info/1575.shtml