Ubuntu创build用户时自动创buildFTP帐户

我会注意到,我使用Rails,但这不是一个Rails的问题。

我不是很有经验的Linux,但我知道我在Linode上运行Ubuntu 10.04 LTS。

在用户注册后,用户在我的RAILS_ROOT / public / users / [user_id] /中创build一个文件夹供他们自己使用。 这个文件夹里面是一个相册目录。

我怎样才能在创build这个文件夹的同时,对它进行密码编码并给予他们ftp访问权限。 这实际上是可能的吗? 什么是这样的安全问题。 我想把它们锁在那里,我也看到一些人谈论vsftpd作为最后一部分的解决scheme。

如果您安装并configuration了ProFTPD,则可以使用AuthUserFile指令指向备用密码文件。 这个文件可以由你的应用程序pipe理。 您也可以将ProFTPDconfiguration为使用您的应用程序可以pipe理的sql数据库后端。

这些真正的Linux帐户,还是他们的帐户在您的应用程序中创build?

vsftpd可以使用真实帐户或虚拟用户(从文件中读取)以及将其帐户“chroot”到特定目录,以便它们不能从那里上去目录,但是这两种方式都需要一定的configuration(默认情况下,它似乎只允许匿名访问)。 无论您是使用真实还是虚拟用户,您都需要启用“本地”用户。 vsftpd对所有本地用户使用PAM,因此对于虚拟用户,您需要完全擦除/etc/pam.d/vsftpd,并将其replace为本教程中的信息。 如果他们是在应用程序中创build的用户,那么您的应用程序需要具有对上面PAMconfiguration中指向的虚拟passwd文件的写入权限,并且每个新用户都有自己的用户名以及存储在文件中的密码的合适散列。

如果你对PAM很熟悉,并且安装了相应的软件包,PAM可以使用任意数量的不同模块,可以使用这个模块来读取你的应用程序用来执行用户名/密码查询的同一个数据库表。