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 相关文章推荐
PHP利用COM对象访问SQLServer、Access
Oct 09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
详解vue项目构建与实战
2017/06/27 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
python常见的格式化输出小结
2016/12/15 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
优秀交警事迹材料
2014/01/26 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
村道德模范事迹材料
2014/08/28 职场文书
通讯稿格式及范文
2015/07/22 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
python数字图像处理之图像的批量处理
2022/06/28 Python