如何在Linux上设置FTP服务器,使用API​​进行authentication,而不是静态的用户列表?

我想在Unix机器上有一个FTP服务器,它将能够查询某个API(可能通过HTTP或本地shell脚本)来validation客户端。

如果有一个服务器可以处理下面的情况就足够了:

  1. 客户端通过FTP连接到我的服务器
  2. 客户端发送用户名和密码
  3. 服务器使用给定的参数执行本地脚本
  4. (我的脚本里面的自定义逻辑)
  5. 将成功/失败代码/消息返回给FTP服务器

市场上有这样的服务器吗? 还是有可能定制一些现有的服务器来覆盖上面的情况?


注1 :我看到vsftpd为虚拟用户提供了一个模块,但是对于我来说不太清楚如何使用自定义的(例如:HTTP)API来设置这样一个模块

注2 :似乎有一些方法来构build( 在C )PAM模块,但我希望有一个更简单的方法(这将允许我configuration身份validation机制,而不是build立一个C库)。

注3 :关于暂停的问题请注意,这个问题主要集中在通过自定义协议/ API实现FTPauthentication的方式上。 我不是在寻找一个特定的产品,但我正在努力解决一个具体的问题。 显然,由于我们正在处理FTP服务器,所以需要一个产品来实现这样的解决scheme。

看来Pure-FTPD就是你所需要的。 这里有两点来自他们的“关于”部分似乎完全符合您的需求:

  • 多个身份validation方法可以按任意顺序链接。 例如,SQL帐户,LDAP目录和系统帐户可以同时使用。
  • 自定义身份validation方法可以轻松添加。 Pure-FTPd支持外部authentication模块,编写一个新的后端可以像几行shell脚本一样简单。

更多信息: https : //www.pureftpd.org/project/pure-ftpd