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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
php中全局变量global的使用演示代码
May 18 PHP
php数组中删除元素的实现代码
Jun 22 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php创建无限级树型菜单
Nov 05 PHP
详解php中反射的应用
Mar 15 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
thinkphp5+layui实现的分页样式示例
Oct 08 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 PHP
PHP 时间处理类Carbon
May 20 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
新52大事件
2020/03/03 欧美动漫
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP7新功能总结
2019/04/14 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
jQuery中:lt选择器用法实例
2014/12/29 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
解决python删除文件的权限错误问题
2018/04/24 Python
Python学习小技巧总结
2018/06/10 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python小白切忌乱用表达式
2020/05/29 Python
用python读取xlsx文件
2020/12/17 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
环保建议书作文500字
2015/09/14 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
商业计划书格式、范文
2019/03/21 职场文书