与Apache共享主机的Unix / Linux权限设置

我正在安装一个干净的CentOS 5安装服务器。 什么是最好的权限结构(用户,组,unix权限)为多个用户运行一个Apache的实例? 理想情况下,它应该满足这些要求:

  • 每个用户的网站都存储在其主目录的子目录中。 用户可以编辑文件和权限。
  • Apache可以读取所有用户的网站。
  • 没有用户可以阅读其他用户的网站文件。

奖金问题:如何在不允许任何用户访问任何其他用户的文件的情况下将PHP和/或Perl和/或Ruby添加到Apache?

这就是我所做的:

  1. chown user_name:www-data website_dir
  2. chmod g + s website_dir#这使得www-data用户(标准的Debiannetworking服务器用户)拥有该目录中的新文件/目录,
  3. 然后,任何用户创build的文件都可以通过web服务器访问,用户可以通过chmod g + w来执行,如果他们希望目录/文件也可以通过web服务器写入(比如configs / upload等)

缺点是用户www-data运行所有脚本,所以用户可以使用php / ruby​​ / perl /任何在web服务器上运行的其他用户数据。

下一步将使用类似mod_suphp或mod_suexec来运行与该用户的权限的用户脚本。