Страница 1 из 1

pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-07-13 3:12:38
Dice
Вынужден в очередной раз обратится к вам за помощью.
Установил из пакетов на Openbsd 4.4 фтп сервер Pure-ftpd-1.0.21p0-mysql.

Настроил pure-ftpd.conf, с теми настройками которые требовались, запускаю следующей командой:

Код: Выделить всё

#/usr/local/sbin/pure-config.pl /etc/pure-ftpd.conf &
Сервер стартует и работает с теми настройками которые указаны в файле pure-ftpd.conf, по крайней мере на системных пользователей настройки указанные в файле 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
Теперь конфиг pureftpd-mysql.conf полный:

Код: Выделить всё

# 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
Mysql пользователь для того, чтобы логиниться к БД создан корректно. И заходит получая доступ к базе pureftpd нормально.
Пробовал запускать фтп сервер и с раскоментированным 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 узнал практически все тоже самое что и из других источников.

Подскажите пожалуйста где я мог ошибиться или что не доделал, так как хочется заставить это все работать именно с виртуальными пользователями.

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-08-01 18:03:53
Dice
Уважаемые неужели никто не может подсказать, что я не доделал или не правильно сделал?
Уже 2й месяц все с бубном вокруг этого пляшу и толку никакого. :(

P.S. В общем как оказалось плохой у меня бубен был...когда приобрел новый, то все заработало, ибо как оказалось демон pure-ftpd не конектился к mysql. :st:

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-02 10:39:32
Raven2000
На вот запоздалая Pure-FTPd+MySQL+Web
)

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-02 18:55:06
Dice
Спасибо, про веб порадовало, обязательно воспользуюсь..как раз задался вопросом а как и что. :smile:
Только как я понял через net2ftp нельзя редактировать таблицу в которой pure-ftpd держит виртуальных пользователей.

А еще когда это все проработало какое-то время столкнулся с проблемой, что pure-ftpd порой начинает отключаться сам как служба, было два-три раза. После перезагрузки опять все нормально работало. Сейчас вроде стабилизировалось все.
С чем вообще может такое может быть связано? или опять мои кривые руки где-то виноваты? :unknown:

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 8:17:22
Raven2000
Dice писал(а):Только как я понял через net2ftp нельзя редактировать таблицу в которой pure-ftpd держит виртуальных пользователей.
Для учёток в мусе утилитка /usr/ports/www/usermanager. Для редактирования только из консоли читай Virtual-Users, а так нету утилит (да и зачем тк pure-pw и есть утилита =))
Ты как запускаешь его дай строку запуска в rc.local

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 15:11:45
Dice
Ты как запускаешь его дай строку запуска в rc.local

Код: Выделить всё

echo -n " pure-ftpd: "; /usr/local/sbin/pure-config.pl /etc/pure-ftpd.conf;
По крайней мере так написано запускать в родных манах pure-ftpd.

И при таком запуске в строке "starting local daemons" пишет следующее:

Код: Выделить всё

Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C5 -D -E -fftp  -H -I15 -lmysql:/etc/pureftpd-mysql.conf -Iunix -L2000:8 -m4 -U133:022 -u1000 -i -j -k99 -2 -4

Такая проблема возникла три раза, а теперь вот уже достаточно продолжительное время все нормально. Однако ftp используют с такой же периодичностью примерно как и во время возникновения проблемы.
Для учёток в мусе утилитка /usr/ports/www/usermanager.
Дык для удобства и ради интереса.
Да и кого-то пускать в консольку, если понадобиться дать доступ человеку к редактированию таблицы, не очень хочется, хотя тут конечно phpmyadmin самый простой выход, но все же иногда такие возможности не лишние. :smile:

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 15:18:35
Raven2000
глянь как у меня в статье я его запускаю при запуске

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 17:12:23
Dice
С такими параметрами запуска как в статье, он не использует файл конфигурации, а соответсвенно и виртуальные пользователи не работают, которые лежат в мускл.
Поэтому и пришлось такое писать в rc.local
Или же он сохраняет настройки после первого запуска, а потом при перезагрузке просто делает рестарт?

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 19:28:15
Raven2000
но у меня же пашет тоже муся и опенок тот же пурефтп.
Все как в статье 1:1 и все работает с конфигами

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 20:37:13
Dice
Значит он автоматически подгружает конфиги в твоем варианте тк собирается из портов.
Я ставил из пакетов openbsd4.4 pure-ftpd-1.0.21p0-mysql.tgz. Хотя разницы относительно поддержки основного конфига и конфига мускл в обоих вариантах не должно быть. Или я ее просто не вижу.
Если конечно из консоли запускаю, также как написано в статье то работает, но вот после перезагрузки он запускается без поддержки мускл, если пишу в rc.local то что в статье.

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 20:38:35
Raven2000
Выложи, что ты записал в rc.local для фтп и муси

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 20:40:51
Dice
С учетом статьи:

Код: Выделить всё

 if [ -x /usr/local/bin/mysqld_safe ]; then
 echo -n " mysqld"; /usr/local/bin/mysqld_safe &
fi

if [ -x /usr/local/sbin/pure-ftpd ]; then
  echo Starting Pure-FTPd
  /usr/local/sbin/pure-ftpd -A -B -H -u1000
fi

И вариант который работает у меня:

Код: Выделить всё

 if [ -x /usr/local/bin/mysqld_safe ]; then
 echo -n " mysqld"; /usr/local/bin/mysqld_safe &
fi

echo -n " pure-ftpd: "; /usr/local/sbin/pure-config.pl /etc/pure-ftpd.conf; 

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 20:49:53
Raven2000
Во первых держи все свои конфиги в /usr/local/etc
Во вторых у тебя запуск mysql не корректный смотри как тут и скопируй так же (чуть скоректированный более правильный я тебе завтра выложу) (и муся и фта запуск суй в rc.local а не в rc.config.local)
$ more /usr/local/share/doc/pure-ftpd/README.MySQL
в третьих сделай запуск фтп как в статье он штатный и правильный.
в четвертых проверь чтобы в файле pure-ftpd.conf было правильным путь к файлу муси
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
Далее ребут и если что отпишись

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-03 23:40:59
Dice
Положил конфиги (pure-ftpd.conf и pureftpd-mysql.conf) в /usr/local/etc, данного каталога не было по умолчанию..пришлось создать. Права 755.
Про mysql не понял где смотреть.
Запуск мускл и фтп помещаю в /etc/rc.local изначально. (его часом не надо переместить в /usr/local/etc?)
Сделал запуск фтп как в статье (только обратившись к ману не совсем понял зачем параметры, ведь если используется pure-ftpd.conf то он должен из конфига подгружать данные настройки).
Изменил путь до /usr/local/etc/pureftpd-mysql.conf
Перезагрузил.
И все равно не работает...то есть оно запускается с параметрами -A -B -H -u1000 и все...а pure-ftpd.conf не юзает. :st:

При сборке из портов часом не указывается, что по умолчанию нужно использовать стандартный файл конфигурации?

Перечитал еще раз ман и там написано, что pure-ftpd не использует изначально файл конфигурации, и запускать следует либо с указанием параметров для запуска (и все параметры расписаны), либо через скрипт pure-config.pl указывая путь до конфига.

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-04 12:59:34
Raven2000
Вот что ты должен был найте в доке по мусе и вот делай как тут сказанно

Код: Выделить всё

For example, add this to the login.conf(5) file:

        _mysql:\
                :openfiles-cur=1024:\
                :openfiles-max=2048:\
                :tc=daemon:

Rebuild the login.conf.db file if necessary:

        # cap_mkdb /etc/login.conf

And start the server like this:

        if [ -x /usr/local/bin/mysqld_safe ] ; then
                su -c mysql root -c '/usr/local/bin/mysqld_safe >/dev/null 2>&1 &'
                echo -n ' mysql'
        fi
Но ведь запускается фтп и мерет учетки из муси после ребута?

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-04 14:35:26
Raven2000
Вай пролошарил :cz2: извини вот как надо с конфигом а то уперся нах... :cry:

Код: Выделить всё

# MySQL
if [ -x /usr/local/bin/mysqld_safe ]; then
        su -c mysql root -c '/usr/local/bin/mysqld_safe >/dev/null 2>&1 &'
        echo 'mysql'
fi

# Pure-ftp
if [ -x /usr/local/sbin/pure-config.pl ]; then
        echo 'Starting Pure-FTPd'; /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
fi

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-04 15:30:17
Dice
Была мысль что ты ошибся, но был подавлен авторитетом, ибо кто его знает что там может быть, а что не может. Так как пока опыта мало.
Благодарствую за правильные записи и за /usr/local/etc тк не знал что нужно там держать все конфиги. :smile:

Re: pure-ftpd + mysql проблема с виртуальными пользователями

Добавлено: 2009-09-07 15:50:08
Raven2000
Умеют и знают только мудрецы или идиоты =) А я все время учусь и достаю все что мне нужно по ходу жизни чего и вам желаю.
Off line 1-1.5 week