如果我想使用 MySQL 进行身份验证,我应该使用哪个 FTP 守护进程?

如果我想使用 MySQL 进行身份验证,我应该使用哪个 FTP 守护进程?

我们希望在我们的 Ubuntu 10.04 服务器上设置一个 FTP 守护进程,该守护进程可以使用一个简单(可能是自定义的)构建的 Web 界面作为使用 MySQL 进行身份验证的 FTP 服务器。

它将面向公众,但仅供少数顾客或客户使用。

我知道 vsftpd、ProFTPd 和 Pure-FTPd,但我不确定哪个最适合这个应用程序。

我们想要的主要功能:

  1. 非常好的 MySQL 身份验证集成
  2. 能够指定每个用户可以通过 MySQL 访问的文件夹/文件列表(文件夹级别就足够了)

对于 2,我们正在寻找一些简单的东西,基本上,用户 A 可以访问文件夹 A,用户 B 可以访问文件夹 B。如果用户 C 可以访问文件夹 A、文件夹 B 和文件夹 C,那就太好了。

任何其他东西都只不过是洒在上面而已。

答案1

我建议您使用 vsftpd,原因有二:

  • 它是 Ubuntu(和 Red Hat)推荐的 FTP 服务器
  • 它的安全记录比其他两个更好

对于身份验证,vsftpd 使用 PAM。摘自常见问题解答:

Q) Help! Will vsftpd authenticate against an LDAP server? What about a
MySQL server?
A) Yes. vsftpd uses PAM for authentication, so you need to configure PAM
to use pam_ldap or pam_mysql modules. This may involve installing the PAM
modules and then editing the PAM config file (perhaps /etc/pam.d/vsftpd).

如何配置 pam_mysql 身份验证可能最好在单独的问题中询问和解释。

关于权限:vsftpd 可以将用户 chroot 到他们的“主目录”(也可以使用 PAM 配置)。您应该能够使用硬链接(或者也可以使用符号链接?)将他们应该有权访问的所有目录链接到他们的主目录中。

答案2

我不确定这是否会起作用,但考虑到您将为您的用户提供虚拟主页,您可以尝试例如在 groupC 内创建目录 groupC,您将为 A 和 B 创建主页,而 groupC 文件夹将是用户 C 主页,允许他访问...

查看这个针对 ubuntu 的教程,似乎可以使用 proftpd 实现您想要的目标:http://www.howtoforge.com/virtual-hosting-with-proftpd-and-mysql-ubuntu-8.04

由于您可以将用户设置为同一组,因此它可能也允许您使用这些文件,我不确定,因为我从未这样做过,但值得一试。

好嘞;)

答案3

我很高兴成为pureftpd,不幸的是它只解决了使用 mysql 的问题 #1. 对于第二个,您可以尝试利用组权限或硬链接/符号链接来发挥创意。

相关内容