Назад | Перейти на главную страницу

Запрос ProFTPd MySQL% u разрешает proftpd, а не имя пользователя

Я пытаюсь использовать конфигурацию MySQL ProFTPd для настройки входа по FTP на мой сервер. у меня есть SQLNamedQuery который используется для получения информации о пользователе из базы данных (см. Настройка ProFTPd с домашним каталогом по умолчанию на основе имени пользователя), и как часть запроса я использую %u переменная для вставки имени пользователя. Когда я пытаюсь подключиться, я всегда получаю неверный логин. При проверке файла журнала SQL кажется, что вход в систему не выполняется, потому что %u является не заменяется именем пользователя, отправленным через FTP, но всегда на proftpd. Есть ли еще одна переменная, которую я должен использовать? Почему нет %u заменяется именем пользователя FTP? Когда я заменяю %u с именем пользователя, которое находится в таблице пользователей MySQL, я могу подключиться.

Вот мой конфиг:

<IfModule mod_sql.c>
        SQLLogFile              /var/log/proftpd/sql.log
        SQLDefaultUID           2001
        SQLDefaultGID           2001
        SQLBackend              mysql
        SQLPasswordEngine       on
        SQLAuthTypes            sha1
        SQLConnectInfo          *****@localhost ***** **********
        SQLNamedQuery           userinfo SELECT "uname, passwd, CONCAT('2001'), CONCAT('2001'), CONCAT('/var/projects/users/', uname) AS homedir FROM users WHERE uname='%u'"
        SQLUserInfo             custom:/userinfo
        SQLGroupInfo            ftpgroups groupname gid members
</IfModule>

А вот соответствующая строка в моем файле журнала SQL (обратите внимание на uname='proftpd' бит в конце):

query "SELECT uname, passwd, CONCAT('2001'), CONCAT('2001'), CONCAT('/var/projects/users/', uname) AS homedir FROM users WHERE uname='proftpd'"

Проблема в том, что %u относится к локальному пользователю (который в вашем случае proftpd). Вы должны использовать %U (Обратите внимание капитал U), который относится к пользователю FTP. Обратите внимание на последний абзац на страница ProFTPd SQLUserInfo, выше "См. также".