Apache 13权限在用户的主目录中被拒绝

我的朋友的网站工作正常,直到他将文档根目录从/var/www/xxx/home/user/xxx

当我们尝试通过网页浏览器访问网站时,Apache给出了13个权限被拒绝的错误信息。

该网站被configuration为一个虚拟目录。 所有的Apacheconfiguration都没有改变(目录改变除外)

我们试图chmod 777 /home/user/xxx ,chown apache / home / user / xxx。 但他们没有工作。

用户的主目录中是否设置了某种安全function? 服务器操作系统是CentOS(Godaddy VPS)。

任何帮助表示赞赏!

谢谢!

原来,我们还必须chmod 755父目录,用户,除了xxx。

即时通讯使用CentOS 5.5和对我来说是SElinux搞乱它,我忘了检查出来。 你可以通过root身份临时禁用它

 echo 0 > /selinux/enforce 

希望能帮到别人

selinux是造成这个问题的原因…..

TException:错误:TSocket:无法连接到本地主机:9160(权限被拒绝[13])要解决它,你需要改变一个SELinux布尔值(这将自动持续重新启动)。 您可能还想重新启动httpd来重置代理工作人员,虽然这不是严格要求。

setsebool -P httpd_can_network_connect 1

要么

(13)权限被拒绝

错误13表示文件系统权限问题。 也就是说,由于权限不正确,Apache被拒绝访问文件或目录。 一般来说,这并不意味着Apacheconfiguration文件存在问题。

为了提供文件,Apache必须具有操作系统授予的适当权限来访问这些文件。 尤其是,httpd.conf中指定的用户或组必须能够读取所有将被提供的文件,并search包含这些文件的目录以及所有父目录直到文件系统的根目录。

对于不属于用户或组的非Unix系统的资源,在httpd.conf中指定的典型权限为普通文件为644 -rw-r-r–目录或CGI脚本为755 drwxr-xrx。 您可能还需要在支持它们的操作系统上检查扩展权限(如SELinux权限)。

一个例子

比方说,当你访问类似unix的系统上的/usr/local/apache2/htdocs/foo/bar.html文件时,你收到了Permission Denied错误。

首先检查文件的现有权限:

cd / usr / local / apache2 / htdocs / foo ls -l bar.htm

如有必要,修复它们:

chmod 644 bar.html

然后对目录和每个父目录(/ usr / local / apache2 / htdocs / foo,/ usr / local / apache2 / htdocs,/ usr / local / apache2,/ usr / local,/ usr)执行相同的操作:

ls -la chmod + x。 cd ..

重复到根

在某些系统上,可以使用实用程序namei通过列出沿path的每个组件的权限来帮助查找权限问题:

namei -m /usr/local/apache2/htdocs/foo/bar.html

如果所有的标准权限都是正确的,并且您仍然收到权限被拒绝错误,您应该检查扩展权限。 例如,您可以使用命令setenforce 0来closuresSELinux并检查问题是否消失。 如果是这样,ls -alz可以用来查看SELinux权限和chcon来修复它们。

在极less数情况下,这可能是由其他问题引起的,例如apache2.conf文件中其他位置的文件权限问题。 例如,WSGIScriptAlias指令不映射到实际文件。 错误消息可能不准确,哪些文件是不可读的。

即使“只是testing服务器”,也不要将文件或目录设置为模式777,甚至“只是testing”。 testing服务器的目的是在一个安全的环境中把事情做好,而不是为了避免做错事。 所有它会告诉你是如果问题是与实际存在的文件。

不知道你是否修复了它,但在你的httpd.conf中

检查以查看您的用户/组设置。 通常它会被设置为

用户www组www

如果是这样,请将其更改为您的姓名/小组

用户Greg小组工作人员

Apache的错误日志将解释你为什么拒绝权限。 此外, serverfault.com是这样的问题更好的论坛。

如果错误日志只是简单的说“权限被拒绝”,那么su就会让web服务器正在运行,并尝试从有问题的文件中读取。 举个例子:

 sudo -s su - nobody cd / cd /home cd user cd xxx cat index.html 

看看是否有一个给你“权限被拒绝”的错误。

你不能在httpd.conf中设置Loglevel进行debugging吗? (我使用FreeBSD)

ee usr / local / etc / apache22 / httpd.conf

更改日志级别:

LogLevel:控制logging到error_log的消息的数量。 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。

尝试更改以进行debugging,然后重新检查错误日志。

可能是SELinux。 检查相应的日志文件(/ var / log / messages? – 我已经使用RedHat衍生产品了一段时间了)来查看是否阻止访问。

错误:

 [错误] [客户端127.0.0.1](13)权限被拒绝:无法打开密码文件:/ home / XXX / svn / svn_password

信息:

 ## SELinux安全上下文文件标签
 #httpd_sys_content_t常规静态网页使用.html和.htm扩展名的types。
 #httpd_sys_script_ro_t CGI脚本需要读取文件和目录。
 #httpd_sys_script_ra_t与httpd_sys_script_ro_ttypes相同,但也允许通过CGI脚本将数据附加到文件。
 #httpd_sys_script_rw_t这种types的文件可以通过CGI脚本以任何方式更改,包括删除。
 #httpd_sys_script_exec_t执行CGI脚本所需的types 

解:

 [root @ localhost]#perror 13
操作系统错误代码13:权限被拒绝
 [root @ localhost]#chown apache.apache / home / XXX / svn / -R
 [root @ localhost]#semanage fcontext -a -t httpd_sys_script_rw_t“/home/XXX/svn(/.*)?”
 [root @ localhost]#restorecon -R -v / home / XXX / svn /
 [root @ localhost]#restorecon reset / home / XXX / svn / context
 [root @ localhost]#ls -dZ / home / XXX / svn /
 drwxr-XR-X。  apache apache system_u:object_r:httpd_sys_rw_content_t:s0 / home / XXX / svn /
 [root @ localhost]#ls -dZ / home / XXX / svn / svn_password 
 -rwxr-XR-X。  apache apache system_u:object_r:httpd_sys_rw_content_t:s0 / home / XXX / svn / svn_password
 [根@本地]# 

你是否改变了单个文件的权限以及目录?

 chmod -R 777 /home/user/xxx