-1

我已经设置了一个 apache 服务器实例(在 ubuntu 12.04 上)并在其上托管了两个 php 网站。网站由不同的团队维护,他们不希望其他团队可以看到代码。

网站代码位于目录 /etc/sites/team1 和 /etc/sites/team2 中。两个团队都可以通过 FTP 访问服务器(使用 vsftpd)。网络服务器使用属于 www-data 组的用户 www-data 的凭据运行。这意味着站点目录中存在的所有文件都必须具有用户 www-data 或组 www-data 的读取权限。当用户通过 FTP 客户端上传文件时,文件的所有者和组被设置为 FTP 用户的用户和组。

如何将每个通过 FTP 服务器上传的默认组设置为 www-data?

一种方法是将 FTP 用户的默认组设置为 www-data,但在这种情况下,两个站点的 FTP 用户都将拥有组 www-data,并且每个文件至少具有该组的读取权限,他们将能够看到彼此的代码。

保护源代码的正确方法是什么,以便 apache 服务器可以访问它们,但其他团队不能访问它们?

4

2 回答 2

1

对我来说,一个快速的解决方案是为每个网站设置单独的用户组。

于 2012-12-22T20:15:42.163 回答
0

虽然 ravdhaw 解决方案是正确的,但我还建议查看 vsftpd 的监狱可能性。您可以将用户监禁在他们自己的 Web 目录中,这将是他们能够看到的唯一目录。您可以在 serverfault 上检查此答案:

https://serverfault.com/questions/229664/jail-linux-user-to-directory-for-ftp-login

您应该检查 suphp 这将使您的安装更加安全,因为这些进程将由文件所有者运行,因此无法访问其他用户文件。

于 2012-12-25T20:48:14.377 回答