mysql外部认证_Gene6 ODBC连接外部MySQL数据库验证FTP登录攻略 | 学步园

折腾了一周多,最终把这个该死的Gene6配置起来了,想起来真是坎坷(主要是Gene6的文档太言简意赅了,shit~~~)

首先扯谈FTP服务器软件的事情。Linux下FTP服务器如果需要用MySQL作为外部验证源方式很多,有专门的MySQL插件,也可以通过PAM来配置。Windows下Serv-U是老牌,但是及其丑陋!名义上支持通过ODBC连接外部数据库来进行FTP登录验证,但是Serv-U的开发人员脑子进水了,所有FTP配置必须和用户名、密码保存在同一张表里。支持SQL的目的就是灵活性,Serv-U这样做大大的限制了ODBC外部验证的用途。Xlight也是一个不错的选择,但是令人抓狂的是,它支持的表名是固定的:用户名、密码必须保存在一个名字为acct_table的表里。所以我觉得Xlight的开发人员脑子肯定被火东篱把酒黄昏后药枪打过。好,现在不是流行用Gene6+FTPRush代替Serv-U+FlashFXP么,我们试试Gene6。

文档里是这么说的:

Connection string : ODBC connection string necessary to access the database (examples are preset in drop down list).

Query : SQL query that will return the account name (example : 'SELECT account FROM ftp_auth WHERE uid=$LOGIN

AND password=$PASSWORD' where '$LOGIN' and '$PASSWORD' are the submitted login and password replaced when the

query is sent).

我就根据DormForce ID系统的MySQL数据表写了这么一行查询语句:

SELECT 'ftpuser' FROM dormid.dormuser WHERE LoginName=$LOGIN AND UserPassword=MD5($PASSWORD)

其他的配置起来了,用一个数据表里的用户整死登录不成功!

后来东晃晃西看看,在Gene6的官方论坛找到了答案:

需要这么写:

SELECT 'ftpuser' as account FROM dormid.dormuser WHERE LoginName=$LOGIN AND UserPassword=MD5($PASSWORD)

原来Gene6只会识别account字段的返回,我晕!!!

下面简单描述一下步骤。首先实现ODBC连接外部MySQL数据库验证FTP登录的目的:如果要实现一个帐号多处登录,那么authentication的数据层必定是独立出来的。如果FTP服务也通过这个统一的认证进行登录,就需要配置FTP服务器进行外部验证。Gene6实现这一功能有2大核心概念:authentication和user。其中,authentication只是验证一个登录名和密码,如果验证成功返回一个“用户名”(不是登录名),如果失败返回其他或则空。用户名是什么东西呢?用户名保存了FTP连接的主目录、限速、限流量、限IP的所有信息。作为普通FTP服务器来说,默认的用户就是匿名(anonymous),密码为任意字符。有的时候也指定了只能特定的user和密码才能浏览/上传/下载。如果采用外部authentication,多个authentication可以对应单个user,也可以一一对应。

那么我们打开G6FTPAdmin,连接到需要配置的服务器,新建一个域,点击域的属性,找到authentication,新建,method选择Database via ODBC,连接字串填写

Driver={MySQL ODBC 3.51 Driver};Server=服务器IP;Port=3306;Database=数据库名称;Uid=用户名;Pwd=密码;

Query填写刚才提到的SQL查询语句

SELECT 'ftpuser' as account FROM dormid.dormuser WHERE LoginName=$LOGIN AND UserPassword=MD5($PASSWORD)

点击OK确定,勾选Disable default authentication,也就是说Gene6的user的密码不参与验证登录密码。

然后在域下面的Users中添加一个用户ftpuser,配置好主目录,限速,限IP,我们的的FTP服务器就搭建好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值