Mik*_*kiy 1 php linux apache bash ubuntu
如何允许 Ubuntu 上的 www-data 组通过 www-data 写入新创建的文件?
我正在使用 PHP 脚本并创建一个文件(所有者是 www-data),然后我需要写入该文件。但它失败了,我认为是因为 www-date 没有对新文件的写访问权限。
并为所有用户提供对需要创建此文件的目录的所有访问权限,但它不起作用,因为新文件是由 www-data 创建的,因此它没有写入权限。
我的脚本:
crontab -l > file && echo \"test\" >> file
Run Code Online (Sandbox Code Playgroud)
您需要确保您正在写入的目录允许 www-data 写入它。通常,您希望将该目录放在远离其他文件等的地方...
sudo chown www-data:www-data <DIRNAME>
sudo chmod g+w <DIRNAME>
Run Code Online (Sandbox Code Playgroud)
应该为你做的伎俩。
如果您要写入的文件名已经存在,则上述应用于文件本身的相同命令也应该可以正常工作。通常,如果您编写的 PHP 脚本正在创建文件,但失败了,这是由于父目录权限所致。为清楚起见 - 将调整文件权限和所有权的命令。
sudo chown www-data:www-data <FILENAME>
sudo chmod g+w <FILENAME>
Run Code Online (Sandbox Code Playgroud)
最后,如果您无法调整目录或文件的所有权,您可以分配其他或所有访问权限。但出于各种可怕的安全原因,我强烈建议不要这样做。