为什么文件需要是全世界可读的,以便 Apache 可以为它们提供服务。

为什么文件需要是全世界可读的,以便 Apache 可以为它们提供服务。

为什么文件需要是全世界可读的,Apache 才能为其提供服务?

我认为,如果它们归 Apache 用户或组所有,则购买它们。并且这些文件是可读和可执行的,这将允许 Apache 为这些文件提供服务。

如何处理发给 Apache 的请求。是否指定用户为访客或无人,或者 Apache 拥有这些请求。

除了基本的如何更改用户组和权限之外,任何文档都很好。我的问题不是更改权限,而是了解如何处理请求以及为什么文件需要全世界可读。

答案1

这不是关于 Apache 及其如何读取文件的问题,而是一般 *NIX 管理和 chmod 使用的问题。

*nix 系统上的文件/目录具有所有者和与之关联的组 (chown)。它们还附加了安全位,定义了以下属性:

  • 所有者的权限
  • 群组权限
  • 其他人的权限

如果 Apache 没有这些类别之一的权限,那么它就无法读取该文件。

请参阅以下有关 chmod 和 chown 的维基百科文章:

http://en.wikipedia.org/wiki/Chmod

http://en.wikipedia.org/wiki/Chown

答案2

UserApache 请求由在 httpd.conf 中的和指令中定义的 UID 和 GID 下运行的进程处理Group。适用于用户进程的相同权限规则也适用于 Apache 进程。

因此,如果 Apache 所服务的文件不属于或不能被 Apache 所运行的 UID(或 GID)读取,则除非设置了全局可读位,否则将拒绝访问。如果文件属于或可被 Apache 所运行的 UID(或 GID)读取,则无需设置全局可读位。此外,Apache UID(或 GID)必须对所服务文件的所有父目录具有执行权限。

例外情况是 CGI 脚本,它在执行指令Apache 模块,在这种情况下,进程在正在执行的程序的 UID 和 GID 下运行。在这种情况下,CGI 程序不需要是全局可读的,它们只需要是用户可读和可执行的。

答案3

不需要。只要 apache 用户有读取权限就足够了。

用户名可以有所不同。在 RedHat 家族中是“apache”,在 Ubuntu 中是“www-data”。

检查您的进程列表,查看 apache 使用哪个用户运行。还要检查您的 httpd.conf 文件,查看用户和组的指令。

相关内容