![在 Ubuntu 9.04 服务器上,哪个用户应该拥有 /var/www?](https://linux22.com/image/494753/%E5%9C%A8%20Ubuntu%209.04%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%EF%BC%8C%E5%93%AA%E4%B8%AA%E7%94%A8%E6%88%B7%E5%BA%94%E8%AF%A5%E6%8B%A5%E6%9C%89%20%2Fvar%2Fwww%EF%BC%9F.png)
我在 Ubuntu 9.04 Server 上安装了 LAMP,默认安装中 root:root 拥有 /var/www 文件夹。当另一个服务 Hudson 无法写入该目录时,我发现了这一点。我希望我的 hudson 用户有权写入 /var/www。那么,www-data 用户应该是 /var/www 的所有者,而 hudson 应该是 www-data 组的成员,还是我应该使用默认用户和组,并让 hudson 成为 root 的成员?后者似乎不对。因此,这引出了一个问题,哪个用户应该拥有 /var/www?(对于那些比我更有经验的人来说,考虑到这种情况,有没有比我见过的两种解决方案更好的解决方案?)
答案1
那么,www-data 用户是否应该是 /var/www 的所有者
为什么 apache 进程由 www-data 运行,但 /var/www 却归 root 所有?让 www-data 拥有该文件夹并运行该进程是否存在风险?
您的 Web 服务器以 www-data 的形式运行。如果 apache 能够写入 /var/www,而您配置不正确,或者您运行的 Web 应用程序存在缺陷,或者 apache 本身存在可利用的缺陷,那么 Internet 上的恶意人员就能够将内容写入 /var/www。只要有可能,您就应始终为服务帐户提供其操作所需的最小权限。
有没有比我见过的两种解决方案更好的?
创建一个新组,并将 /var/www 的所有权更改为 root:group。将所有需要发布到该文件夹的用户添加到该组。您可能还想用 setgid 位标记该文件夹,并调整用户的 umask,以便他们写入此文件夹的任何内容都可以由该组中的任何其他人写入。