php的mkdir()函数创建文件夹比较安全的权限设置方法


Posted in PHP onJuly 28, 2014

问题描述:
使用以下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 相关文章推荐
PHP验证码函数代码(简单实用)
Sep 29 PHP
PHP URL路由类实例
Nov 12 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
yii操作cookie实例简介
Jul 09 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
详解PHP中的状态模式编程
Aug 11 PHP
Symfony控制层深入详解
Mar 17 PHP
php关闭warning问题的解决方法
May 17 PHP
php中error与exception的区别及应用
Jul 28 #PHP
浅析get与post的一些特殊情况
Jul 28 #PHP
thinkphp学习笔记之多表查询
Jul 28 #PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 #PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 #PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 #PHP
PHP实现多图片上传类实例
Jul 26 #PHP
You might like
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python中while和for的区别总结
2019/06/28 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python计算无向图节点度的实例代码
2019/11/22 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
体育教师个人的自我评价
2014/02/16 职场文书
保密承诺书范文
2014/03/27 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
优秀志愿者感言
2015/08/01 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL