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中对2个数组相加的函数
Jun 24 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
如何设置mysql允许外网访问
Jun 04 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php 强制下载文件实现代码
Oct 28 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
php导出CSV抽象类实例
Sep 24 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
thinkPHP5框架接口写法简单示例
Aug 05 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/08/08 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python中的集合类型知识讲解
2015/08/19 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
python多线程同步之文件读写控制
2021/02/25 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
专业技术人员年度考核评语
2014/12/31 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript
A22国内电台短波广播频率表
2022/05/10 无线电