如何在ProFTPD上实现不带表的静态/固定SQLGroupInfo?

时间:2019-05-04 15:46:52

标签: proftpd proftpd-mysql

我发现了一些ProFTPMySQL连接的教程。但是这些按一般方案处理,它们中的99%是相同的。并且不要详细介绍配置。

是否需要SQLGroupInfo

我注意到组总是相同的。因此,groups表中只需要一个数据库记录。

我想通过省略组表并直接在配置中进行设置来解决此问题。

我该怎么做?

第一次尝试是注册一个自定义查询:

# Hardcoded groups
SQLNamedQuery get-groups SELECT 'ftp' AS `name`, 2001 AS `group`, 'ftpd' AS `members`
SQLGroupInfo sql:/get-groups

但是在这里,我遇到以下错误:

  

致命:SQLGroupInfo:'/etc/proftpd/sql.conf'的第34行上格式错误的参数

1 个答案:

答案 0 :(得分:1)

问题是,我必须返回正确的行,例如gidgroupnamemembers。如果需要,您可以删除FROM $table WHERE [...],这不是必需的。

这是解决方案:

# Hardcoded groups
SQLNamedQuery get-group-by-name SELECT "`username` AS `groupname`, '1010' AS `gid`, `username` AS `members` FROM `fh_ftp_user` WHERE `username`='%{0}'"
SQLNamedQuery get-group-by-id SELECT "`username` AS `groupname`, '1010' AS `gid`, `username` AS `members` FROM `fh_ftp_user` WHERE `username`='%{0}'"
SQLNamedQuery get-group-by-member SELECT "`username` AS `groupname`, '1010' AS `gid`, `username` AS `members` FROM `fh_ftp_user` WHERE `username`='%{0}'"
SQLGroupInfo custom:/get-group-by-name/get-group-by-id/get-group-by-member

# Hardcoded groups
SQLNamedQuery get-hardcoded-group SELECT "'YourHardcodedGroup' AS `groupname`, 1010 AS `gid`, 'MemberName' AS `members`"
SQLGroupInfo custom:/get-hardcoded-group