我正在尝试通过以下命令使用PHP在服务器上创建目录:
mkdir("test", 0777);
但是它不提供完全权限,仅提供以下权限:
rwxr-xr-x
该模式是由当前的修改umask,这是022在这种情况下。
umask
022
umask工作方式是减法。您获得的初始许可权,mkdir然后减去umask以获得 实际 许可权:
mkdir
0777 - 0022 ====== 0755 = rwxr-xr-x.
如果您不希望这种情况发生,则需要将您的umask临时设置为零,以使其无效。您可以使用以下代码段执行此操作:
$oldmask = umask(0); mkdir("test", 0777); umask($oldmask);
第一行将更改umask为零,同时将前一个存储到中$oldmask。第二行使目录使用所需的权限和(现在不相关)umask。第三行将还原umask为原始状态。
$oldmask
有关umask和mkdir的更多信息,请参见PHP doco 。