Estou tentando usar a configuração MySQL do ProFTPd para configurar o login do FTP no meu servidor. Eu tenho um SQLNamedQuery
que é usado para obter as informações do usuário do banco de dados (consulte Configurando o ProFTPd com o diretório inicial padrão com base no nome de usuário ), e como parte da consulta eu uso a variável %u
para inserir o nome de usuário. Quando tento conectar, sempre consigo fazer o login incorreto. Verificando o arquivo de log SQL, parece que o login falha porque %u
está não sendo substituído pelo nome de usuário enviado via FTP, mas sempre por proftpd
. Existe outra variável que eu deveria usar? Por que o %u
não está sendo substituído pelo nome de usuário do FTP? Quando eu substituo %u
por um nome de usuário que está na tabela de usuários do MySQL, posso me conectar.
Aqui está minha configuração:
<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>
E aqui está a linha relevante no meu arquivo de log SQL (observe o uname='proftpd'
bit no final):
query "SELECT uname, passwd, CONCAT('2001'), CONCAT('2001'), CONCAT('/var/projects/users/', uname) AS homedir FROM users WHERE uname='proftpd'"