【问题标题】:Fedora file permissions apache no write accesFedora 文件权限 apache 没有写权限
【发布时间】:2013-04-21 15:06:59
【问题描述】:

我花了几个小时找出如何在 Fedora 18 中为我的 apache 安装获得文件权限。我做了以下没有任何运气的事情:

httpd.conf(之后重新启动)

DocumentRoot "/var/www/html"

<Directory "/var/www/html/">
    AllowOverride all
    # Allow open access:
    Require all granted
    Options Indexes FollowSymLinks Multiviews
</Directory>

我的 /var/www/html 文件夹的文件权限

drwxrwxrwx. 6 chris apache 4096 26 apr 22:40 .
drwxrwsrwx. 7 chris apache 4096 23 apr 09:30 ..
-rwxrwxrwx. 1 chris apache   19 22 apr 08:37 index.php
-rwxrwxrwx. 1 chris apache   20 21 apr 17:14 info.php
drwxrwxrwx. 8 chris apache 4096 27 apr 14:58 pyro
-rwxrwxrwx. 1 chris apache  125 24 apr 00:36 test.html

如您所见,我什至递归地将权限更改为 777(使用 -R)

我还尝试将用户更改为 root 和 apache,将组更改为用户和 root 等。在我的版本中,我有 2 个用户:root 和 chris。

我如何改变它并不重要。我仍然得到 PHP 错误(例如在 pyrocms 后端):

A PHP Error was encountered

Severity: User Warning
Message: system/cms/cache/default/simplepie/ is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.
Filename: libraries/Simplepie.php
Line Number: 2040

但它似乎不是 pyrocms,因为 Laravel 框架给了我相同类型的错误。

编辑 我的 httpd.conf 中的用户和组也设置为 apache

【问题讨论】:

  • 可能是错字。但是您的 apache 配置引用了 /var/www/html,其中的 html 目录在您的文件列表中不可见。
  • 我在 .所以 。 = html(所以这是一个错字:))
  • blabla 部分是什么?请提供完整的错误信息。
  • 用完整代码编辑了问题(由 pyrocms 的框架(codeigniter)生成。注意:它都位于我的根 html 中的 pyro 文件夹下
  • system/cms/cache/default/simplepie/ 的绝对路径是什么。 apache可以写吗?它存在吗?

标签: apache permissions fedora chmod chown


【解决方案1】:

我遇到了同样的问题,因为 SELinux 阻止了 httpd,执行此命令后它运行良好:

setsebool -P httpd_unified 1

我在 Fedora 23 上。

【讨论】:

  • 谢谢,对我帮助很大。
  • 感谢就像一个魅力。我希望这些 SELinux 人破产,他们开始在路上乞讨,提高安全性并不意味着你会删除可用性。 SELinux === ShittyLinux
【解决方案2】:

有很多因素可能会影响到这一点:

  • 自主访问控制 (DAC)
  • SELinux 文件/内容类型
  • 用户:组所有权
  • apache 服务器模块丢失/配置错误。

您的服务器目录具有 777 权限这一事实将导致我排除 DAC 作为错误的主要原因;但是,您可能需要检查以确保 user(chris) 是 apache 组的一部分,只是为了更好地衡量。另外,httpd 服务器默认以apache用户身份读/写文件!!

同样,您说即使“禁用”SELinux 后错误仍然存​​在;我假设您执行了 setenforce 0 或类似的操作,以便将 SELinux 策略从 Enforcing 更改为 Permissive。此外,如果它与 SELinux 有关,大多数时候(如果不是全部)您会收到有关拒绝的通知,或者您可以在日志中看到它。同样,为了更好地衡量,使用ls -Z 检查目录/文件的 SELinux 内容类型;内容类型应该是httpd_sys_content_t 或者甚至可能是httpd_sys_content_rw_t

最后,应彻底检查 apache 模块和服务器配置——包括 httpd.conf 文件中的 cmets——以了解正确的选项、模块和顺序。如果一切都失败了,请尝试移动这些行

 <Directory "/var/www/html/">
    AllowOverride all
    # Allow open access:
    Require all granted
    Options Indexes FollowSymLinks Multiviews
</Directory>

到配置文件的底部 (/etc/httpd.conf)。应该仔细检查该代码块中的 Options 标志;您可以通过apache website 获得更多信息。例如,不确定在这种情况下事情的顺序是否会为您改进/改变事情,但我的 Fedora 系统上的 httpd.conf 文件有 Options 列出 before Require All granted

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 2011-05-29
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多