【发布时间】:2010-09-24 14:20:39
【问题描述】:
我最近安装了 FC13,并试图在我的 PHP 代码中编写一种机制,将收集到的数据缓存到特定目录中(出于我们的目的,我们将其称为 /var/www/html/_php_resources/cache)。
我将文件复制到 /var/www/html 目录,然后对新数据运行 chown -R apache:apache /var/www/html/* 和 chmod a+w /var/www/html/_php_resources/cache。现在我只是为了方便而使用全局写权限。我稍后会调整权限。
当我尝试使用 chmod 或 mkdir PHP 函数时,我会得到:
警告:chmod():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝
或
警告:mkdir():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝
现在,当我禁用 SELinux 时,一切正常。问题是我宁愿不禁用 SELinux 并实际设置正确的权限,以便我可以将其移植到某人没有此类明确控制的服务器。
例如:我的个人站点主机允许我设置目录的读/写权限,但不允许 SELinux 策略更改。
仅供参考:
- uname -r = 2.6.34.7-56.fc13
- *php -version * = PHP 5.3.3
- rpm -qa | grep httpd = httpd-2.2.16-1.fc13
有人有什么建议吗?
【问题讨论】:
-
/var/www/html/_include 的权限是什么?
-
是 F13,不是 FC13(我认为从 F7 开始就是这样,因为 Fedora 和核心存储库已经合并)
-
这可能是世界可写权限。由于该文件夹归 apache 所有,所以
chmod a-w /var/www/html/_php_resources/cache和chmod o+w /var/www/html/_php_resources/cache...还要确保 Apache 确实以“apache”而不是“httpd”运行 -
audit2allow -a 的输出?或者 /var/log/audit/audit.log 的最后几行发生这种情况?
标签: php apache2 fedora selinux