Установил из пакетов на Openbsd 4.4 фтп сервер Pure-ftpd-1.0.21p0-mysql.
Настроил pure-ftpd.conf, с теми настройками которые требовались, запускаю следующей командой:
Код: Выделить всё
#/usr/local/sbin/pure-config.pl /etc/pure-ftpd.conf &
Запускаю сервер с настройками для MySql первый способ запуска это раскоментирование строки MySQLConfigFile в pure-ftpd.conf, в этом случае запуск осуществляется командой описанной выше и в итоге не логинятся не системные пользователи, не виртуальные.
Если запустить Pure-ftpd следующим образом:
Код: Выделить всё
#/usr/local/sbin/pure-config.pl /etc/pure-ftpd.conf -l mysql:/etc/pureftpd-mysql.conf -l &
При том если запускать сервер командой:
Код: Выделить всё
#/usr/local/sbin/pure-ftpd &
Основной вопрос почему pure-ftpd не хочет работать с виртуальными пользователями через mysql где возможна ошибка?
Сервер Mysql из пакетов: mysql-server-5.0.51ap1
Сервер запущен и работает нормально, сайты к нему конектятся и работают нормально.
Конфиг pure-ftpd.conf только то что раскоментировано:
Код: Выделить всё
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 5
VerboseLog no
DisplayDotFiles no
AnonymousOnly no
NoAnonymous yes
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
MySQLConfigFile /etc/pureftpd-mysql.conf
UnixAuthentication yes
LimitRecursion 2000 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez no
Umask 133:022
MinUID 1000
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite yes
ProhibitDotFilesRead yes
AutoRename no
AnonymousCantUpload yes
CreateHomeDir yes
MaxDiskUsage 99
CustomerProof yes
IPV4Only yes
Код: Выделить всё
# MYSQLServer 127.0.0.1
# MYSQLPort 3306
MYSQLSocket /var/www/mysql/mysql.sock
MYSQLUser pureftpd
MYSQLPassword Password
MYSQLDatabase pureftpd
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM users WHERE User="\L"
# MYSQLGetUID SELECT Uid FROM users WHERE User="\L"
MYSQLDefaultUID 1002
# MYSQLGetGID SELECT Gid FROM users WHERE User="\L"
MYSQLDefaultGID 1002
MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
# MySQLForceTildeExpansion 1
# MySQLTransactions On
Пробовал запускать фтп сервер и с раскоментированным MYSQLSocket а также раскоментированными MYSQLServer и MYSQLPort результат один и тот же виртуальные пользователи не конектяться.
Mysql база для данных настроек создана, вот таблица:
Код: Выделить всё
CREATE TABLE `users` (
`user` varchar(16) character set cp1251 collate cp1251_bin NOT NULL,
`password` varchar(64) character set cp1251 collate cp1251_bin NOT NULL,
`uid` int(11) NOT NULL,
`gid` int(11) NOT NULL,
`home` varchar(128) character set cp1251 collate cp1251_bin NOT NULL default '/var/www/users/ftpuser',
`QuotaFiles` int(9) NOT NULL default '10000',
`QuotaSize` int(6) NOT NULL default '100',
`ULRatio` int(2) NOT NULL default '1',
`DLRatio` int(2) NOT NULL default '10',
`ULBandwidth` int(6) NOT NULL default '1024',
`DLBandwidth` int(6) NOT NULL default '1024',
PRIMARY KEY (`user`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Системный пользователь ftpuser имеющий доступ к каталогу где предпологается создавать папки на которые ссылаются виртуальные пользователи и имеющий uid и gid 1002 в системе существует.
Также ему поставил права 777 на домашний каталог в котором предполагается создавать каталоги виртуальных пользователей, ну это от того что просто уже не знаю что сделать.
По идее каталог виртуального пользователя должен создаваться при его первом заходе, насколько я понимаю, но даже при созданном каталоге "/home/ftpuser/user" виртуального пользователя 'user', этот пользователь не может залогиниться к серверу.
Во всех мануалах по настройке данной связки, а я их прочитал больше 10ка под разные оси, все говорится сделать примерно одинаково, однако у меня эта связка не работает. После прочтения оригинальной документации на pureftpd.org узнал практически все тоже самое что и из других источников.
Подскажите пожалуйста где я мог ошибиться или что не доделал, так как хочется заставить это все работать именно с виртуальными пользователями.