6

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

这是我在 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了,但徒劳无功。如果有人可以帮助我,将不胜感激。

4

2 回答 2

6

我解决了这个问题。在干预了系统的权限后,我发现user "anjan"who is owner/home/anjan拥有读/写/执行权限,/home/anjangroup "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

我发现我的 apache 是在哪个用户下从这个线程运行的。它在下面运行user "apache"

所以我添加user "apache"group "anjan"这个命令。

usermod -G anjan,apache apache

在那之后瞧。没有更多的禁止错误。

PS我以root用户身份做了所有事情。

更新 现在提供的链接似乎已损坏。是另一个。

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

ps axo user,group,comm | grep apache
于 2013-01-21T07:48:05.143 回答
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

Ifapache是“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/是必需品.

于 2013-05-20T17:31:17.220 回答