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

Не пускает PureFTPd + MySQL в Debian

Добавлено: 29 апр 2008, 20:18
Dark_Sarmat
Наткнулся в интернете на любопытную мануалку. И попробовал настроить свой FTP как описано там. Система Drebian 4. Pure устанавливался с диска дистрибутива. Ссылка на инструкцию: http://codesources.net/pureftpd-mysql-v-debian/

Проблема заключается в том, что FTP работает, но при попытке на него войти, пишет что имя и пароль неверные и требует ввести новые. Делал все по данной статье. Скажите, где может быть ошибка? Что поправить?

P/S/ Обнаружил, что не смотря на все проделанное в мануалке, аутентификация работает через PAM. Отключил, не помогло.

Добавлено: 30 апр 2008, 08:35
Firestorm
Ну например было бы неплохо конфиги увидеть для начала....

Добавлено: 30 апр 2008, 08:42
Dark_Sarmat
Ок вечером выложу

Добавлено: 12 май 2008, 23:17
Dark_Sarmat
############################################################################
# #
# PureFTPd MySQL configuration file. #
# Generated by the installation wizard for the 'User manager for PureFTPd' #
# See http://machiel.generaal.net for more info #
# or read the README.MySQL for explanations of the syntax. #
# #
############################################################################

# Optional : MySQL server name or IP. Don't define this for unix sockets.

MYSQLServer localhost

# Optional : MySQL port. Don't define this if a local unix socket is used.

MYSQLPort 3306


# Optional : define the location of mysql.sock if the server runs on this host.

MYSQLSocket /var/run/mysqld/mysqld.sock


# Mandatory : user to bind the server as.

MYSQLUser ftp


# Mandatory : user password. You must have a password.

MYSQLPassword pass


# Mandatory : database to open.

MYSQLDatabase ftpusers


# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "md5" *and* "password"

MYSQLCrypt md5


# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.


# Query to execute in order to fetch the password

MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")


# Query to execute in order to fetch the system user name or uid

MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")


# Optional : default UID - if set this overrides MYSQLGetUID

#MYSQLDefaultUID 1000


# Query to execute in order to fetch the system user group or gid

MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : default GID - if set this overrides MYSQLGetGID

#MYSQLDefaultGID 1000


# Query to execute in order to fetch the home directory

MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.

# MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"

# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.

# MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"


# Optional : ratios. The server has to be compiled with ratio support.

# MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
# MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"


# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .

MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.

# MySQLForceTildeExpansion 1


# If you upgraded your tables to transactionnal tables (Gemini,
# BerkeleyDB, Innobase...), you can enable SQL transactions to
# avoid races. Leave this commented if you are using the
# traditionnal MyIsam databases or old (< 3.23.x) MySQL versions.

# MySQLTransactions On

Добавлено: 13 май 2008, 10:28
Llama
включите лог запросов в mysql и убедитесь что pureftpd вообще пытается получить доступ, делает какие-то запросы и т.п.

Добавлено: 13 май 2008, 11:06
leave
# Optional : MySQL server name or IP. Don't define this for unix sockets.

MYSQLServer localhost

# Optional : MySQL port. Don't define this if a local unix socket is used.

MYSQLPort 3306

# Optional : define the location of mysql.sock if the server runs on this host.

MYSQLSocket /var/run/mysqld/mysqld.sock
а это обязательно: вписывать сразу все 3 опции? ;)
и таки да, надо включать полный лог запросов MySQL.

Добавлено: 13 май 2008, 11:15
Dark_Sarmat
Мониторил через администратора mysql пура вообще не хочет коннектиться.

даж не знаю как ее заставить. Пакет идет вместе с дистрибутивом. ума не преложу, чего не работает :(

Добавлено: 13 май 2008, 12:12
leave
мускль вообще через tcp или unix сокет работает? оставь что-то одно в конфиге. посмотри в messages что пишет фтп-демон при рестарте.

Добавлено: 13 май 2008, 22:55
Dark_Sarmat
пишет что запущен
Вопрос, мот чего в конфиге закоментячить стоит?

демон пишет какой конфиг файл юзает (тот что нужно) пишет параметры запуска и пишет лог файл. Лог пуст

Добавлено: 14 май 2008, 10:15
leave
Повторяю вопрос: MySQL работает через локальный UNIX или через TCP сокет?
Я точно не знаю, как себя ведет pureftpd в случае указания в конфиге обоих сокетов, но ИМХО ломится на тисипишный. А в дебиане АФАИК мускль юзает локальный. Выбери именно твою конфигурацию и закомменти неиспользуемый сокет в конфиге.

Добавлено: 14 май 2008, 18:12
Dark_Sarmat
Честно говоря я не знаю через какой сокет он пытается лопиться.
я обычно настраиваю через 3306 порт

я думаю, что стоит закоментячить строчку:

MYSQLSocket /var/run/mysqld/mysqld.sock

Добавлено: 14 май 2008, 22:06
leave
ls -la /var/run/mysqld/mysqld.sock

telnet localhost 3306

что отдаст ошибку - то и комментим.

Добавлено: 15 май 2008, 09:56
Dark_Sarmat
leave писал(а):/var/run/mysqld/mysqld.sock
Кстати, по данному адресу у меня совсем другой файл валяется: =mysqld.sock

Интересно зачем там знак равенства?

Так, сеня попробуем снова.

Добавлено: 15 май 2008, 12:04
br
Dark_Sarmat писал(а):
leave писал(а):/var/run/mysqld/mysqld.sock
Кстати, по данному адресу у меня совсем другой файл валяется: =mysqld.sock

Интересно зачем там знак равенства?

Так, сеня попробуем снова.
\
Знак равенства там нарисовал твой mc. И знак этот не часть имени файла, а всего лишь обозначает что файл этот является сокетом.

Добавлено: 16 май 2008, 08:40
Dark_Sarmat
leave писал(а):ls -la /var/run/mysqld/mysqld.sock

telnet localhost 3306

что отдаст ошибку - то и комментим.
Выполнил команду:
server2:~# telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
F
5.0.32-Debian_7etch5-log*X[CyZ6@,}uS"J2W@ydh^Connection closed by foreign host.

Это нормальный результат? Что-то мне подсказывает, что нет :(

Выполнил:
server2:~# ls -la /var/run/mysqld/mysqld.sock
srwxrwxrwx 1 mysql mysql 0 2008-05-16 08:29 /var/run/mysqld/mysqld.sock

тот результат получше. Вопрос, а апач и PHP5 подключаются к мускулу через что?