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