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

我已经在centos 6中安装了apache 2.2。当apache文件夹在默认位置/var/www/html时,一切正常。 然后,我在我的用户主文件夹中configuration了一个虚拟主机。 之后,Apache开始显示Forbidden You don't have permission error当我试图从localhost127.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 ,但徒劳无益。 如果有人能帮助我,将不胜感激。

我解决了这个问题。 经过系统的许可,我发现/home/anjan拥有者的user "anjan"/home/anjan具有读/写/执行权限,而user "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我做了所有的根用户。

更新现在看来,提供的链接已经被破坏了。 继承人另一个。

为了安全起见(避免将来断开的链接),在这里复制命令。 终端类型 –

 ps axo user,group,comm | grep apache 

这是(至少对我来说)一个可疑的设计。 这基本上意味着Apache用户已经可以访问所有用户的文件,包括例如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:如果文件系统支持。

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/是必需的&#x3002;