函数mkdir前两个参数,目录路径和访问权限
例mkdir('/tmp/test',0777)
然后要得到的权限码,不一定是上边设定的,当前系统的umask将会与设定的值‘与’,这样子才是真正的权限码,例如,如果umask为022,那码上边得到的权权限码为0755,没有写的权限
所以如果我们想要真正的得到0777的权限,代码:
<?php
$oldumask=umask(0);
mkdir('test',0777);
umask($oldumask);
umask()检查并修改当前的umask码,并返回修改之前的umask码
umask 是什么?
我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是 umask 干的事情。umask 设置了用户创建文件的默认权限,它与 chmod 的效果刚好相反,umask 设置的是权限“补码”,而 chmod 设置的是文件权限码。一般在 /etc/profile、$HOME/.bash_profile 或 $HOME/.profile 中设置 umask 值。
如何计算 umask 值?
umask 命令允许你设定文件创建时的缺省模式,对应
在PHP中使用mkdir()创建目录时,指定的0777权限可能因系统的umask值影响而无法达到预期。umask会与设定的权限进行'与'操作,导致实际权限变为0755,无写权限。解决方法是通过umask()检查和调整当前umask值,确保目录能获得0777权限。umask是决定文件和目录默认创建权限的设置,它定义了从权限码中移除的位。了解umask的工作原理对于正确设置文件和目录权限至关重要。
订阅专栏 解锁全文

676

被折叠的 条评论
为什么被折叠?



