您在CentOS中的Apache中没有权限错误

时间:2013-01-20 18:32:44

标签: linux apache centos chmod document-root

我在centos 6中安装了apache 2.2。当apache文件夹位于默认位置/var/www/html时,一切正常。然后我在我的用户主文件夹中配置了一个虚拟主机。之后,当我尝试从浏览器转到Forbidden You don't have permission errorlocalhost时,apache开始显示127.0.0.1

这是我在httpd.conf中使用的代码

<VirtualHost *:80>
        DocumentRoot "/home/anjan/workspace/mfs"
        ServerName anjan-centOS
        <Directory "/home/anjan/workspace/mfs">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order Deny,Allow
                Allow from all
        </Directory>
</VirtualHost>

如某些文章所述,我也禁用了SElinux,但徒劳无功。如果有人能帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:6)

我解决了这个问题。在干预系统许可后,我发现user "anjan"的所有者/home/anjan/home/anjan具有读/写/执行权限,但group "anjan"创建了user "anjan" ls -l /home/ 创建后根本没有任何权限。

drwx------. 28 anjan anjan 4096 Jan 21 13:19 anjan

显示

chmod -R 770 /home/anjan
ls -l /home/
drwxrwx---. 28 anjan anjan 4096 Jan 21 13:19 anjan

所以我用这个命令改变了权限

user "apache"

我发现了我的apache从this线程运行的用户。它在user "apache"

下运行

所以我使用此命令将group "anjan"添加到usermod -G anjan,apache apache

ps axo user,group,comm | grep apache
瞧,之后瞧。没有更多禁止错误。

P.S。我以root用户身份做了一切。

<强>更新 现在提供的链接似乎已被打破。 Heres另一个。

为了安全起见(以避免将来断开链接),请在此处复制命令。在终端类型 -

{{1}}

答案 1 :(得分:1)

这对我来说是一个令人怀疑的设计。它基本上意味着Apache用户具有对所有用户文件的WRITE访问权限,包括秘密,例如ssh-keys。

如果一个黑客攻击apache就不好玩。

一个简单的修改就是以'anjan'的形式运行:

chmod -R g-rwx ~ # undo the unsafe -R first
chmod g+rx ~ ~/workspace
chmod -R g+rx ~/workspace/mfs

如果apache是'anjan'组的成员。

我的建议是使用ACL:s,如果文件系统支持。

SELinux现在正在运行吗?它应该是这样,如果仍然是SELinux策略阻止apache访问workspace/mfs的情况,那么来自sealert的一些消息应该在var / log / messages中很明显。 这个问题通常通过明智地使用setsebol来解决。

禁用SELinux,因为某些东西不起作用,并推荐该方法是njaa ....

最初的问题是apache会自行运行,因此在计算权限时会在其他类别中崩溃。

chmod o+rx ~anjan/ ~anjan/workspace/ ~anjan/workspace/mfs

应该足够了。

CentOS 6是免费的(如免费啤酒)版本的RedHat Enterprise Linux,因此RedHat的文档https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/是必需的。