A consulta do MySQL ProFTPd% u resolve para proftpd, não para nome de usuário

2

Estou tentando usar a configuração MySQL do ProFTPd para configurar o logon FTP no meu servidor. Eu tenho um SQLNamedQueryque é usado para obter as informações do usuário no 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, uso a %uvariável para inserir o nome de usuário. Quando tento conectar, sempre obtenho o login incorreto. Verificando o arquivo de log SQL, parece que o logon falha porque não%u está sendo substituído pelo nome de usuário enviado via FTP, mas sempre por . Existe outra variável que devo usar? Por que não está sendo substituído pelo nome de usuário do FTP? Quando substituo por um nome de usuário que esteja na tabela de usuários do MySQL, eu posso conectar.proftpd%u%u

Aqui está a 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'"
D. Strout
fonte

Respostas:

4

O problema é que %use refere ao usuário local (que no seu caso é proftpd). Você deve usar %U(observe o U maiúsculo ), que se refere ao usuário do FTP. Observe o último parágrafo na página ProFTPd SQLUserInfo , acima "Consulte também".

D. Strout
fonte