Linux和Apache:Apache虚拟主机的FTP / SFTP用户帐户?

问题

我们公司的网站都位于高性能的Web服务器上,包括几个开发和内部项目。

我们的一些网站是需要定期后端更新的公共网站。 这些更新是由第三方合同SEO /devise公司。

我需要设置一个FTP帐号,第三方公司可以通过FTP(或理想的SFTP)访问这些站点,以修改那里的文件。 我不希望他们有任何访问我们的服务器或我们的其他网站的其余部分。

为了说明我的情况,让我们暂时假设我有四个网站在Apache中configuration为虚拟主机

internalsite1.com internalsite2.com contentsite1.com contentsite2.com 

这些存在于我的服务器上的以下位置:

 /var/www/html/ /internalsite1.com /internalsite2.com /contentsite1.com /contentsite2.com 

现在,我需要“内容”主机允许通过FTP帐户访问来修改文件。 “内部”主机只能由login的用户访问(即通过标准的SSH)。

**我所试过的**

今天早些时候,我尝试修改我的SSHconfiguration,使用OpenSSH的internal-sftpChrootDirectoryfunction来创buildchroot用户。 但是,configuration变得非常复杂,我不能冒SSH攻击服务器的危险,所以我放弃了这种做法。

目前,我试图找出如何使用vsftpd来实现我的目标; 但到目前为止,我只能设置一个帐户访问单个目录。 这可能就足够了,但vsftpd有几十个选项,并没有明确的文件来实现这个特定的设置。

问题

我怎样才能启用一个单一的FTP用户帐户访问服务器上的多个目录位置,每一个代表每个?

注意 :链接到清楚的教程是受欢迎的。

编辑:虽然我宁愿他们通过SFTPlogin,我会解决普通的FTP访问。 我只需要在服务器上创build一个FTP帐户,以访问上述三个网站位置的每一个。

考虑用户的chroot。 这是Ubuntu的指南,但应该是适应性的。

http://ubuntuforums.org/showthread.php?t=858475

以下是安装和设置scponly 的指南 , 这是一个提供备用loginshell的软件包。 其基本思想是将用户的loginshell设置为/usr/bin/scponly ,然后该用户只能使用SFTP或SCP; 他/她无法获得命令行shell。

scponly软件包还提供了一个chroot选项,涉及第二个备用loginshell( /usr/sbin/scponlyc )和一些额外的设置。 一定要阅读整个论坛主题,因为一些其他的提示是由其他人给出的主要文章的回应。

这个指南在某种程度上与Ubuntu相关,但是它也可以和Debian或任何Debian派生的发行版一起工作。 如果你的Linux不是这些,你仍然应该能够下载源代码,自己编译它,然后按照指南中概述的步骤操作。