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抽奖小程序的实现代码
Jun 18 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 PHP
PHP中SESSION过期设置
Mar 09 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
一个php作的文本留言本的例子(一)
2006/10/09 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
JS实现放烟花效果
2020/03/10 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
详解python中executemany和序列的使用方法
2017/08/12 Python
pandas数据集的端到端处理
2019/02/18 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
英语演讲稿3分钟
2014/04/29 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
司机个人年终总结
2015/03/03 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
单位提档介绍信
2015/10/22 职场文书