我在centos 6中安装了apache 2.2。当apache文件夹位于默认位置/var/www/html
时,一切正常。然后我在我的用户主文件夹中配置了一个虚拟主机。之后,当我尝试从浏览器转到Forbidden You don't have permission error
或localhost
时,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
,但徒劳无功。如果有人能帮助我,我将不胜感激。
答案 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/是必需的。