为什么文件需要是全世界可读的,Apache 才能为其提供服务?
我认为,如果它们归 Apache 用户或组所有,则购买它们。并且这些文件是可读和可执行的,这将允许 Apache 为这些文件提供服务。
如何处理发给 Apache 的请求。是否指定用户为访客或无人,或者 Apache 拥有这些请求。
除了基本的如何更改用户组和权限之外,任何文档都很好。我的问题不是更改权限,而是了解如何处理请求以及为什么文件需要全世界可读。
答案1
这不是关于 Apache 及其如何读取文件的问题,而是一般 *NIX 管理和 chmod 使用的问题。
*nix 系统上的文件/目录具有所有者和与之关联的组 (chown)。它们还附加了安全位,定义了以下属性:
- 所有者的权限
- 群组权限
- 其他人的权限
如果 Apache 没有这些类别之一的权限,那么它就无法读取该文件。
请参阅以下有关 chmod 和 chown 的维基百科文章:
答案2
User
Apache 请求由在 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 文件,查看用户和组的指令。