“apache”和“www”用户之间有什么区别?

“apache”和“www”用户之间有什么区别?

我在 CentOS 4 (大致相当于 Red Hat) 上配置 Apache 2。有两个与 httpd 安全相关的用户:apachewww

在我看来,这apache是用户网络服务器实际上运行为,而www用户是拥有文档根目录中的所有文件

为什么要有单独的用户?为什么不直接拥有apache所有这些文件?

答案1

听起来您或其他人为您创建了一个名为 www 的额外用户/组。Red Hat/CentOS 上的标准是让 apache httpd 进程以 apache 用户身份运行,该用户在您安装 httpd rpm 时创建。根据您的情况以及您希望网站的安全性,您可以让 apache 拥有您的内容(不太安全,但如果您需要这种东西,那么 Web 服务器可以更轻松地写入文件),或者您可以让另一个用户拥有网站内容并让所有人可读。例如文件的模式 644 和指向这些文件的目录的模式 755。在 /var/www/html 应该有一个默认的文档根目录,您可以将网站文件放入其中。

仅供参考,如果您使用的是 CentOS 4,那么您已经落后很多了。即使是 CentOS 5 也落后很多,而 CentOS 6 应该会在一个月或更短的时间内推出(这不是 CentOS 的错,Red Hat 将 6 推迟了一年多)。如果您要运行一个严肃的网站,我建议您升级。特别是如果您要尝试使用 PHP 运行任何应用程序。等待 6 推出,它将有 PHP 5.3

答案2

没有把握如何你最终会这样(就我而言,网站文件归我所有),但是有一个很好的理由让网络服务器提供的文件不属于/不可由网络服务器写入:如果有人利用网络服务器,他们就无法在没有单独的特权提升漏洞的情况下更改网站。

答案3

它使您可以使用 SELinux 进行更细粒度的安全配置。每个用户只能拥有所需的权限,例如 apache 有权启动进程和访问网络,而 www 只能读取文件。

有关详细信息,请参阅这个帖子

相关内容