首页 > 解决方案 > Ubuntu 允许 www-data 写入新文件

问题描述

如何允许 Ubuntu 上的 www-data 组通过 www-data 写入新创建的文件?

我正在使用 PHP 脚本,它创建了一个文件(所有者是 www-data),之后我需要写入这个文件。但它失败了,我认为是因为 www-date 没有对新文件的写访问权。

并为所有用户提供对需要创建此文件的目录的所有访问权限,但它不起作用,因为新文件是由 www-data 创建的,因此它没有写入权限。

我的脚本:

crontab -l > file && echo \"test\" >> file

标签: phplinuxbashapacheubuntu

解决方案


您需要确保您正在写入的目录允许 www-data 写入它。通常,您会希望将该目录放在远离其他文件等的地方......

sudo chown www-data:www-data <DIRNAME>
sudo chmod g+w <DIRNAME>

应该为您解决问题。

如果您要写入的文件名已经存在,则应用于文件本身的上述相同命令也应该可以工作。通常,如果您编写的 PHP 脚本正在创建文件并且失败,那是由于父目录权限所致。为清楚起见 - 将调整文件权限和所有权的命令。

sudo chown www-data:www-data <FILENAME>
sudo chmod g+w <FILENAME>

最后,如果您无法调整目录或文件的所有权,您可以分配其他或所有访问权限。但出于各种可怕的安全原因,我强烈建议不要这样做。


推荐阅读