我在 Ubuntu 9.04 服务器上安装了 LAMP,默认安装的 root:root 拥有 /var/www 文件夹。当另一个服务 Hudson 无法写入该目录时,我发现了这一点。我希望我的 hudson 用户有权写入 /var/www。那么,www-data 用户应该是 /var/www 的所有者,而 hudson 应该是 www-data 组的成员,还是应该使用默认用户和组并使 hudson 成为 root 的成员?后者似乎是错误的。这就引出了一个问题,什么用户应该拥有/var/www?(对于那些比我有更多经验的人,考虑到这种情况,有没有比我见过的两种解决方案更好的方法?)
您的 Web 服务器作为 www-data 运行。如果 apache 有写入 /var/www 的能力,而你的配置不正确,或者你运行的 web 应用程序有问题,或者 apache 本身有一个可利用的错误,那么互联网上的一个邪恶的人将能够向 / 写入东西无功/万维网。只要有可能,您应该始终为服务帐户提供操作所需的最低权限。
创建一个新组,并将 /var/www 的所有权更改为 root:group。将需要发布到该文件夹的所有用户添加到组中。您可能还想用 setgid 位标记文件夹并调整用户的 umask,以便他们写入此文件夹的任何内容都可以被该组中的任何其他人写入。