如何为 www-data 创建的文件授予默认组写权限?

Dev*_*rim 4 file-permissions umask apache-2.2

我们的 apache 作为 www-data:psacln 运行

如果这条线运行;

<?php file_put_contents("./file.txt","");
Run Code Online (Sandbox Code Playgroud)

然后 apache 在没有对该组的写权限的情况下创建这个文件,

-rw-r--r-- 1 www-data psacln    9 2010-02-25 16:17 file.txt
Run Code Online (Sandbox Code Playgroud)

如何设置我们的 ubuntu/apache 以便在网站内创建文件/文件夹时默认授予组写权限?

Kou*_*sha 6

就像 DaveG 提到的那样,您可以使用umask()更改进程创建的所有文件的默认权限。您当前的 umask 可能是 0022。如果您将其设置为 0002,您的文件将对用户和组具有相同的权限。

您还可以使用chmod() 这种方式修改您单独设置的文件的权限,您可以只chmod("./file.txt", 664)为用户和组运行并使用 rw运行您的文件。

有关 php umask 的更多信息:http : //php.net/manual/en/function.umask.php

有关 php chmod 的更多信息:php.net/manual/en/function.chmod.php

  • 澄清一点:需要将 umask 012 放入 /etc/init.d/apache2 或 /etc/apache2/envvars (2认同)