我的朋友的网站工作正常,直到他移动了文档根目录的/var/www/xxx
到/home/user/xxx
。
当我们尝试通过Web浏览器访问该网站的Apache提供了13权限被拒绝的错误消息。
该网站被配置为一个虚拟目录。 所有Apache的配置则维持不变(除了目录更改)。
我们试图chmod 777 /home/user/xxx
,CHOWN阿帕奇/家庭/用户/ XXX。 但他们没有工作。
是否有某种安全功能的用户的主目录设置? 服务器操作系统是CentOS的(Godaddy的VPS)。
任何帮助表示赞赏!
谢谢!
原来......我们不得不还搭配chmod 755父目录,用户,除了XXX。
即时通讯使用的CentOS 5.5,对我来说是SELinux的与它搞乱,我忘了检查了这一点。 这样做的根,你可以暂时禁用它
echo 0 > /selinux/enforce
希望它能帮助别人
SELinux的原因是对这个问题.....
TException:错误:TSocket:无法连接到本地主机:9160(权限被拒绝[13])要解决这个问题,您需要更改SELinux的布尔值(这将在重新启动后自动继续存在)。 您可能还需要重新启动httpd的重置代理工人,虽然这不是严格要求。
setsebool httpd_can_network_connect -P 1
要么
(13)被拒绝的权限
错误13表示一个文件系统权限问题。 也就是说,阿帕奇被拒绝,由于不正确的权限访问文件或目录。 这不,在一般情况下,在Apache的配置文件暗示一个问题。
为了提供文件服务,Apache的必须由操作系统授予适当的权限来访问这些文件。 特别是,在httpd.conf中指定的用户或组必须能够读取将要提供的所有文件和搜索包含这些文件的目录,所有的父目录到文件系统的根一起。
对于没有在httpd.conf中指定的应该是644 -RW-R的用户或组拥有的资源类Unix系统上典型的权限 - R--普通文件和755 drwxr-XRX的目录或CGI脚本。 您可能还需要检查在支持它们的操作系统扩展权限(如SELinux的权限)。
一个例子
比方说,你访问一个类Unix系统上的文件/usr/local/apache2/htdocs/foo/bar.html时收到Permission denied错误。
首先检查文件上的现有权限:
CD的/ usr /本地/ Apache2的/ htdocs中/富ls -l命令bar.htm
如果有必要解决这些问题:
搭配chmod 644一个bar.html
随后的目录和每个父目录做相同的(在/ usr /本地/ Apache2的/ htdocs中/富,在/ usr /本地/的Apache2 / htdocs目录是/ usr /本地/ Apache2的是/ usr / local,即在/ usr):
LS -la使用chmod + X。 CD ..
重复直至根
在一些系统上,该实用程序那枚可用于通过上市路径上的每个组件的权限,以帮助找到权限问题:
对虾-m /usr/local/apache2/htdocs/foo/bar.html
如果所有的标准权限是正确的,你仍然可以得到一个权限被拒绝的错误,你应该检查扩展的权限。 例如,你可以使用命令setenforce 0关闭SELinux和检查,看看问题是否会消失。 如果是这样,LS -alZ可以用来查看SELinux的权限和chcon命令来解决这些问题。
在极少数情况下,这可以通过其他的问题,比如在你的apache2.conf文件的其他文件权限问题造成的。 例如,WSGIScriptAlias指令不映射到实际的文件。 错误信息可能不准确有关的文件不可读。
不将文件或目录设置为模式777,甚至“只是为了测试”,即使“这只是一个测试服务器”。 测试服务器的目的是把事情做好在一个安全的环境,而不是逃脱做是错误的。 所有它会告诉你的是,如果该问题是实际存在的文件。
不知道你是否已经解决,但在你的httpd.conf
请检查您的用户/组设置。 通常它会被设置为
用户WWW万维网组
如果是的话将其更改为您的姓名/组
用户格雷格组的工作人员
Apache的错误日志将解释为什么你拒绝权限。 此外, serverfault.com是像这样的问题,更好的论坛。
如果错误日志只是说拒绝“权限”,苏到Web服务器正在运行的,并尝试从有问题的文件读取用户。 因此,例如:
sudo -s
su - nobody
cd /
cd /home
cd user
cd xxx
cat index.html
看看那些人给你的“权限被拒绝”的错误。
你能不能设置日志级别在httpd.conf调试? (我使用的是FreeBSD)
ee值USR /本地/ etc / apache22 / httpd.conf文件
更改日志等级:
“的LogLevel:控制记录在error_log中的消息的数量。 可能的值包括:调试,信息,通知,警告,错误,暴击,警报,EMERG“。
试着改变调试,并重新检查后,该错误日志。
可能是SELinux的。 检查相应的日志文件(在/ var / log / messages中 - 已经有一段时间,因为我用的是RedHat衍生物),看看是否能的阻止访问。
错误:
[error] [client 127.0.0.1] (13)Permission denied: Could not open password file: /home/XXX/svn/svn_password
信息:
##SELinux Security Context File Labels
#httpd_sys_content_t The type used by regular static web pages with .html and .htm extensions.
#httpd_sys_script_ro_t Required for CGI scripts to read files and directories.
#httpd_sys_script_ra_t Same as the httpd_sys_script_ro_t type but also allows appending data to files by the CGI script.
#httpd_sys_script_rw_t Files with this type may be changed by a CGI script in any way, including deletion.
#httpd_sys_script_exec_t The type required for the execution of CGI scripts
解:
[root@localhost]# perror 13
OS error code 13: Permission denied
[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
[root@localhost]#
为何要修改权限的单个文件以及刚刚目录?
chmod -R 777 /home/user/xxx