如何创建具有组写入权限file_put_contents的文件?

2022-08-30 14:31:15

我正在使用创建一个文件。我的php进程在一个具有写入目录的权限的组中运行。但是,当调用 时,生成的文件没有组写入权限(它在第一次创建时就很好)。这意味着,如果我尝试覆盖文件,它会因缺少权限而失败。file_put_contentsfile_put_contents

有没有办法创建具有组写入权限的文件?


答案 1

示例 1(将文件权限设置为所有者和组的读写权限,将其他人设置为读取):

file_put_contents($filename, $data);
chmod($filename, 0664);

示例 2(在不更改其他权限的情况下使文件可按组写入):

file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 16);

示例 3(使文件可由所有人写入,而无需更改其他权限):

file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 128 + 16 + 2);

128、16、2分别表示所有者、组和其他可写。


答案 2

在调用之前,您可能会尝试设置掩码:它将更改创建文件时将授予文件的默认权限。file_put_contents

另一种方法(根据文档更好)是在创建文件后使用chmod更改权限。


好吧,在重新阅读了这个问题之后,我希望我理解得很好......


推荐