无法在 ubuntu 14.04 上创建具有完全权限的文件夹

无法在 ubuntu 14.04 上创建具有完全权限的文件夹

我在使用 Ubuntu 14.04 作为服务器的 VPS 上遇到了一个奇怪的问题。我尝试使用下面的代码通过 php mkdir 创建目录

<?php 
    mkdir("/items/foldername", 0777, true);
?>

每当我运行此脚本时,都会创建文件夹,但权限为 755 而不是 777。

我尝试了所有可用的选项,但发现没有一个有效。我的 php 脚本正在使用 www-data。

我已经尝试过以下

  1. sudo chmod -R 777 items
  2. sudo chmod -R g+s items
  3. 我已添加www-data到根组

答案1

由此所以回答

您可以umask()在 fopen() 调用之前立即使用,但是如果您在多线程服务器上,则不应使用 umask - 它将更改所有线程的掩码(例如,此更改在进程级别),而不仅仅是您即将使用 fopen() 的线程。

例如

$old = umask(000);
fopen('foo.txt', 'w'); // creates a 0666 file
umask($old) // restore original mask

然而,事后简单地使用 chmod() 会更容易:

fopen('foo.txt', 'w'); // create a mode 'who cares?' file
chmod('foo.txt', 0666); // set it to 0666

相关内容