我已经设置了一个apache服务器实例(在ubuntu 12.04上)并在其上托管两个php网站。网站由不同的团队维护,他们不希望代码对其他团队可见。
网站代码存在于目录/ etc / sites / team1和/ etc / sites / team2中。两个团队都有FTP访问服务器(使用vsftpd)。 Web服务器使用用户www-data的凭据运行,该凭据属于www-data组。这意味着站点目录中存在的所有文件必须具有用户www-data或组www-data的读取权限。当用户通过FTP客户端上传文件时,文件的所有者和组被设置为用户和FTP用户组。
我如何将每台通过FTP服务器上传的默认组设置为www-data?
一种方法是将FTP用户的默认组设置为www-data,但在这种情况下,两个站点的FTP用户都将拥有组www-data,并且每个文件都拥有该组的至少读取权限,他们将能够看到彼此的代码。
保护源代码的正确方法是什么,以便apache服务器可以访问它们而不是其他团队?
答案 0 :(得分:1)
对我来说,一个快速解决方案是为每个网站设置单独的用户组。
答案 1 :(得分:0)
虽然ravdhaw解决方案是正确的,但我也建议查看vsftpd的监狱可能性。 你可以在他们自己的web目录上监禁用户,这将是他们能够看到的唯一目录。 你可以在serverfault上查看这个答案:
https://serverfault.com/questions/229664/jail-linux-user-to-directory-for-ftp-login
您应该查看suphp,这将使您的安装更安全一些,因为进程将由文件所有者运行,因此无法访问其他用户文件。