我是靠谱客的博主 个性果汁,这篇文章主要介绍php中0777,PHP mkdir 0777权限问题,现在分享给大家,希望可以做个参考。

在linux系统中,即使我们使用root帐号去手工执行php命令:

mkdir('test', 0777);

结果文件的权限依然为:

drwxr-xr-x 2 root root 4096 Jun 17 11:28 test

很明显这个权限是 755

为什么会这样呢?

在linux系统中在创建文件/文件夹时有一个默认权限,此权限受 umask 设置影响,在/etc/bashrc配置文件中我们可以找到如下配置:

# By default, we want this to get set.

# Even for non-interactive, non-login shells.

if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

这里就说明了问题,linux系统中默认的umask为022,与我们的777 &运算之后,就变成了 755,这就是原因所在了。

解决办法:

你可能会想到,我把这里的022 改为 000 不就可以了么?

当然可以,不过这里的设置直接影响到linux系统的默认权限设置,不仅仅是PHP的问题。所以不建议您这么做。

正确的做法应该是:

mkdir('test', 0777);

chmod('test', 0777);

先创建目录,再使用chmod将权限修改为 777 ,这样就达到我们的目的了。

最后,需要注意一点,权限值最好使用八进制表示,即“0”开头,而且一定不要加引号。

我就犯了一个错,加了引号

chmod('test', '0777'); // 错误,不要加 引号('')

最后

以上就是个性果汁最近收集整理的关于php中0777,PHP mkdir 0777权限问题的全部内容,更多相关php中0777,PHP内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部