将TCPDF输出文件权限更改为0777


Change TCPDF output file permissions to 0777

我有一个项目需要用PHP生成各种PDF文档,所以我搜索并找到了TCPDF。在我把文件保存到某个文件夹之前,一切看起来都很好。

因此,我创建了所需的文件夹,为其设置了0777权限,然后继续在其中生成一个文件。该文件已经创建,一切看起来都很好,但该文件现在属于"守护进程"用户,拥有0644权限。

我需要生成的文件具有0777权限。我不介意"守护进程"用户作为所有者,但知道如何将其设置为"根"用户会很酷。

我在TCPDF的官方文档中搜索了答案,但没有找到,所以我来这里寻求帮助。

有人能帮我提些建议吗?

我在Debian Server上的Apache安装中通过在/etc/apache/envvars中设置umask环境变量解决了这个问题。

在我的情况下,我只想让用户和组拥有写权限。我通过将该文件中的umask变量设置为007来实现这一点。掩码应用于Apache运行的任何用户继承的权限,因此在我的情况下,最终结果是PHP在Apache中创建的所有文件都有660。我想在你的情况下,你可能需要000(或0000)。

设置执行权限是绝对没有意义的,我建议不要这样做,因为往好了说它什么都没有实现,往坏了说它可能会引入一些奇怪的安全问题。

这个答案包含更多关于设置umask的信息:设置Apache用户的umask

与PHP的chmod函数相比,此解决方案的唯一好处是您可以"设置并忘记它",问题是如果您忘记设置它,那么您就有问题了。