【问题标题】:Permissions granted, still www-data cannot write files in folder授予权限,仍然 www-data 无法在文件夹中写入文件
【发布时间】:2017-10-21 17:09:58
【问题描述】:

我已经在 Digital Ocean 上设置了一个 Ubuntu 服务器。以下是配置详情:

Ubuntu 版本:Ubuntu 16.04.2 LTS

Apache 版本:Apache/2.4.18 (Ubuntu)

我正在尝试通过浏览器运行 php 脚本,该脚本需要在目录中创建一个文件。我在 /var/log/apache2/error.log 文件fopen(<folder_to_write>): failed to open stream: Permission denied in test_write.php

中不断收到以下权限被拒绝消息

我发现用户 www-data(apache2 用户)存在权限问题。我更改了文件夹的所有者,如下所示: chown -R www-data:www-data folder_to_write 然后 chmod 2775 folder_to_write

这不起作用。

最后,我尝试了最后一个选项。我将目录权限更改为sudo chmod -R 777 folder_to_write,希望得到一些线索。但是,尽管授予了此完全访问权限,但我收到了权限被拒绝的消息。

之前有没有人遇到过这样的问题?不知道我做错了什么。我对另一个用户尝试了相同的步骤,并且似乎工作正常。

感谢您的帮助。非常感谢。

【问题讨论】:

  • 您能否再次检查 www-data 用户是否对文件夹嵌套中的每个文件夹都具有执行访问权限?因此,如果您需要在嵌套 A/B/C 中写入文件夹 C,请确保它可以在每个文件夹 A、B 和 C 上执行 (x)
  • 谢谢@Maurizio。该文件夹确实具有递归执行权限。使用相同的权限,来自同一组的另一个用户可以创建该文件。只有 www-data 用户(也属于同一组)无法创建文件。

标签: linux digital-ocean apache2.4


【解决方案1】:

fopen(): 未能打开流: 似乎无法找到目录 folder_to_write ,请检查您的绝对目录路径是否配置正确以写入文件。

【讨论】:

  • 谢谢@sahil。是的,路径是存在的。我与另一个用户一起尝试,它工作得很好。只有 www-data 才会出现这个问题。
猜你喜欢
  • 2018-03-25
  • 2019-06-18
  • 2023-01-06
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多