php中mkdir()函数的权限问题分析


Posted in PHP onSeptember 24, 2016

问题描述:
使用以下php代码创建了一个目录,期望目录的权限是0777,实际结果是0755

mkdir('./aa/',0777);

分析与测试结果:

1.mkdir()函数指定的目录权限只能小于等于系统umask设定的默认权限。
如linux默认的umask一般0022, 即创建目录的默认权限是0755, 所以这时php mkdir('./aa/',0777) 得到目录的权限是0755.

xw@xw-X201:~/Desktop/dd/aa$ umask
0022
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0755);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0747);"
xw@xw-X201:~/Desktop/dd/aa$ ll
总用量 20
drwxrwxrwx 5 xw xw 4096 2012-06-01 11:58 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxr-xr-x 2 xw xw 4096 2012-06-01 11:57 xw/
drwxr-xr-x 2 xw xw 4096 2012-06-01 11:58 xw1/
drwxr--r-x 2 xw xw 4096 2012-06-01 11:58 xw2/

把系统默认权限改为777,mkdir()可以指定更大权限了

xw@xw-X201:~/Desktop/dd/aa$ umask 000
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ ll
总用量 12
drwxrwxrwx 3 xw xw 4096 2012-06-01 12:08 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxrwxrwx 2 xw xw 4096 2012-06-01 12:08 xw2/

2.chmod()函数不受系统umask影响,可以设置比系统默认权限大的权限。

xw@xw-X201:~/Desktop/dd/aa$ umask
0022
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/');"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw3/');chmod('./xw3/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ ll
总用量 20
drwxrwxrwx 5 xw xw 4096 2012-06-01 12:12 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw1/
drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw2/
drwxrwxrwx 2 xw xw 4096 2012-06-01 12:12 xw3/

3.系统的mkdir命令可以设置大于默认值的权限。

xw@xw-X201:~/Desktop/dd/aa$ umask
0022
xw@xw-X201:~/Desktop/dd/aa$ mkdir -m0777 xw
xw@xw-X201:~/Desktop/dd/aa$ ll
总用量 12
drwxrwxrwx 3 xw xw 4096 2012-06-01 12:18 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxrwxrwx 2 xw xw 4096 2012-06-01 12:18 xw/

总结:
php若要创建一个有读写权限的目录,最好使用以下代码,不要直接使用mkdir函数指定权限,以避免系统umask的影响

mkdir('./xw/');
chmod('./xw/',0777);
PHP 相关文章推荐
我的论坛源代码(九)
Oct 09 PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
PHP简单选择排序算法实例
Jan 26 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
php微信开发之图片回复功能
Jun 14 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 #PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 #PHP
php fread读取文件注意事项
Sep 24 #PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 #PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 #PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 #PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 #PHP
You might like
codeigniter数据库操作函数汇总
2014/06/12 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
原生js调用json方法总结
2018/02/22 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Python程序运行原理图文解析
2018/02/10 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
pandas分批读取大数据集教程
2020/06/06 Python
python实现在线翻译
2020/06/18 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
医护人员英文求职信范文
2013/11/26 职场文书
代办委托书怎样写
2014/04/08 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
国庆横幅标语
2014/10/08 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
我的收音机情缘
2022/04/05 无线电