403 禁止访问

403 禁止访问

昨天,我的主管将他的一个目录挂载到我的服务器上。问题是,我无法访问它们,而且我现在无法联系他。当我输入 URL 时,出现此错误:

Forbidden
You don't have permission to access /~<username>/core/ on this server.

我尝试进入“核心”目录并执行以下操作:

chmod -R 755 *.*

但即使更改了所有权限,我仍然无法访问!奇怪的是,我访问和编辑文件。

答案1

Apache 需要访问文件系统路径中的每个目录/~<username>/core/

这几乎总是一个权限问题/home

chmod 755 /home/应该可以帮你修复它。

或者 Justin 谈到的 SELinux 问题。

答案2

如果您使用 SELinux(默认情况下),那么您需要允许 Apache 访问用户主目录:

setsebool -P httpd_enable_homedirs on

就这样。

答案3

请注意,*.* 在 unix 中的含义与在 ms-dos 和 windows 中的含义不同。文件名“扩展名”在 unix 中并不像在 DOS 中那样重要,它们只是组成文件名的字符串的一部分。

chmod -R 755 *.*仅更改名称中带有“.”的文件和目录的权限。要更改所有文件(无论它们是否带有.),请尝试:

chmod -R 755 *

甚至更好的是,只有目录(而不是普通文件)需要是可执行的,因此请尝试以下操作:

chmod -R a+rX,u+w *

这会将所有文件更改为所有用户可读、所有者可写,并且还会在目录上设置执行位(“X”而不是“x”)。

答案4

您在服务器上使用 SELinux 吗?如果您使用并且将其设置为“强制”,则可能需要将目录的上下文更新为httpd_sys_content_t,否则 Apache 将被拒绝访问。

您可以通过执行以下操作来更改目录的上下文:

chcon -Rv --type=httpd_sys_content_t /~<username>/core

这会将目录的上下文及其内容更改为适合 HTTPD 服务(即 Apache)工作的上下文。

更多信息可以在这里找到: http://wiki.centos.org/HowTos/SELinux/

相关内容